MySQL sorgu bazen hiçbir şey döndürür

1 Cevap php

Biz temel yapılandırma bilgilerini döndüren bizim PHP / MySQL uygulama içinde kullanılan bir işlevi var, bu basit bir seçme sorgusu içerir ve bu gibi görünüyor:

public function getConfigurationValue($field)
{
    $res = mysql_query("SELECT `cfg_value` FROM `ls_config` WHERE `cfg_name` = '".mysql_real_escape_string($field)."'");
    $cfg = htmlspecialchars(mysql_result($res,0));
    return $cfg;
}

Biz yaşıyorsanız bu sorun, bazen, görünüşte rastgele, bu sorgu "verilen argümanı geçerli mysql result resource olmadığını" söyleyerek mysql_result bir mysql hata atıyor olmasıdır. Bizim hata ayıklama biz $ alan değil geçirilen çünkü bu olmadığını bile tespit ettik. Esasen, bir nedenle biz mükemmel geçerli bir sorgu başarısız ve boş bir sonuç kümesi ve sonraki hataya neden sonuç verir belirleyemiyor. Hata nedeniyle başarısız mysql bağlantısı için ise script iyi bundan önce ölmüş olurdu. Ayrıca, bu işlev bazı sayfa yükleri 50-100 kez çağrılabilir olabilir ama sadece her yükü kez başarısız eğilimindedir.

Bu işe başka herhangi bir bilgi ihtiyacınız varsa lütfen bana bildirin.

Teşekkürler.

1 Cevap

Bu değer, geçerli bir MySQL result resource olmayan - php "supplied argument is not a valid mysql result resource" gerçek hatayı almak için, mysql_error aramak gerekiyordu ortaya koymaktadır, ve sorgu sonucu YANLIŞ çünkü olsun hata arıyor .

yani kısacası gibi bir şey var:

$res = FALSE; # should contain the mysql result but does not, due to error.
$cfg = htmlspecialchars(mysql_result($res,0)); # the attempt to call mysql_result on invalid argument errors out.

Yani böyle bir şey kullanmak isterdim:

$query = "SELECT * FROM cats WHERE id=$id";
$qr1 = mysql_query ($query)
      or die ("Query failed: " . mysql_error() . " Actual query: " . $query);

Bu denemek ve altta yatan hata iletisi ne diyor görmek isteyebilirsiniz.


this article araştırmak için iyi bir başlangıç ​​olacağını - hata "MySQL server has gone away", bunun nedenleri vardır çokluk edilebilir olduğu göz önüne alındığında. Searching, bazı php-ilişkili ve yığın özgü hatalar da anlaşılacağı, bu yüzden daha yakın bir ilgi ile hata ayıklama gerekebilir gibi görünüyor.

Belki başka bir kutuyu kurulum çoğaltmak ve daha sonra versiyonları / ayarları ile deney başlamak için çalışın ve davanızı maç zaten bildirildi senaryolardan herhangi olmadığını görmek. Ne yazık ki, bu tek basit bir cevabı var gibi görünüyor.