Bir sorgu yürütme ile PHP MySQL INSERT dönüş değeri

4 Cevap php

Bir şey var, bir INSERT sorgusu MySQL / PHP döndürülen yürütülüyor? Burada bir SINIF var benim fonksiyonudur.

function mysqlQuery($query) {
   // Gets the results from the query
   $results = mysql_query($query, $this->connection);

   // Loops through the queried results as an multi-dimensional array
   while($rows = mysql_fetch_array($results, MYSQL_ASSOC)) {
      // Push results to single array
      $rs[] = $rows;
   }

   // Return results as array
   return $rs;
}

Bu benim işlevini çağırın nasıl

$rs = $dbh->mysqlQuery($query);

Ama INSERT sorgusu $ rs yürütme hiçbir şey döndürür. Benim işlevi yardıma ihtiyacınız veya bu varsayılan davranışı mı? Herhangi bir ipucu de yararlı olacaktır.

DUH, bu YANLIŞ / DOĞRU verdiğini hatırlattığın için teşekkürler. Kafamda vardı nedense aslında başka bir değer döndü, ama benim işlevi baktıktan sonra ben DOĞRU / YANLIŞ durumu için kontrol ve sadece sonuçları dizi döngü değilim bakın.

Tüm doğru cevaplar için teşekkürler ama ilk cevap doğru noktaları, alkış var!

4 Cevap

INSERT sadece true veya false döndürür. aslında yararlı bir şey dönmek için, bir SELECT veya benzer bir sorgu gerekir. INSERT ile almak için hiçbir sonuç yoktur.

Php belgeleri:

Return Values For SELECT, SHOW, DESCRIBE, EXPLAIN and other statements returning resultset, mysql_query() returns a resource on success, or FALSE on error.

SQL tabloların diğer tip için, INSERT, UPDATE, DELETE, DROP, vs, mysql_query() döner { [(5)]} başarı veya FALSE hata.

Dönen sonuç kaynak mysql_fetch_array() geçti ve sonuç tabloları ile ilgili diğer fonksiyonlar, döndürülen veri erişim olmalıdır.

mysql_num_rows() için iade edildi kaç satır bulmak için kullanın SELECT statement veya mysql_affected_rows() bir DELETE etkilendi kaç satır bulmak için , INSERT, REPLACE ya da UPDATE statement.

mysql_query() de başarısız olur ve kullanıcı sorgu tarafından başvurulan tablo (lar) erişim izni yoksa FALSE return.

Php.net dan http://us2.php.net/mysql_query

For SELECT, SHOW, DESCRIBE, EXPLAIN and other statements returning resultset, mysql_query() returns a resource on success, or FALSE on error.

For other type of SQL statements, INSERT, UPDATE, DELETE, DROP, etc, mysql_query() returns TRUE on success or FALSE on error.

Devs sorguları işleyen ev fonksiyonları inşa edildiğinde, genellikle, iki yöntem kullanabilirsiniz. Bir, SELECTleri ve işbirliği için kullanılan "sorgu", ve bir (PDO uzantısı gibi) "exec", diğer ınsert'ler UPDATE'ler ve diğerleri.

Eğer işlevi tutmak istiyorsanız, (örneğin is_resource (ile)) $ sonuçlarının türünü kontrol döngü etrafında bir IF deyimi ekleyin