"Verilen argümanı geçerli MySQL result resource değil" bir mysql_ ... () işlevi bir sonuç kaynak geçmek için beklediğini ancak, örneğin, başka bir şey geçmek olmadığı anlamına gelir
$result = false;
$row = mysql_fetch_array($result, MYSQL_ASSOC);
// => Supplied argument is not a valid MySQL result resource
Peki, neden $ sonuç olurdu false
? Önceki sorgu başarısız ve komut dosyası hata işleme olmadığından amost her zaman bulunuyor. Her sorgu Hiç bunu engellemek için yapabileceği hiçbir şey yok, başarısız olabilir. Script yok (ama bir hata durumu) olduğu zaman sonucu işlemek için deneyin kalmaması nedenle her zaman hata işleme çeşit gerekir. Basit hata işleme bir hata oluştu her komut durdurmak izin vermektir.
$sql = 'SELECT x,y,z FROM ...';
$result = mysql_query($sql, $mysql) or die(mysql_error());
mysql_query() returns false
if there was an error. In that case the statement after or
is executed, i.e. if the query failed php will print MySQL's last error message and then quit.
You might want to implement a somewhat more advanced error handling routine though...
E.g. when an PDO object is set to PDO::ERRMODE_EXCEPTION an exception is thrown whenever an error occurs. It's a bit harder to miss that compared to a (simple) return value.
edit: Bu özgün yanıt tam bir yeniden yazma. İlk öneri wait_timeout değerine bakmak oldu.