سؤال

قد يبدو هذا بسيطًا بشكل يبعث على السخرية ، لكنني حصلت على كل أنواع الأخطاء اعتمادًا على كيفية التعامل مع استعلام لا يعيد شيئًا.

$query = "SELECT * FROM messages WHERE id > ".$messageId;
$result =mysql_query($query);
$time = time();
while(time()-$time<60 && $result==false)
{
    $result = mysql_query($query);
}
if(result != false)
     //Encode response
else
     //return nothing

كيف أتحقق مما إذا كان mysql_query () قد أعاد أي شيء؟

هل كانت مفيدة؟

المحلول

يمكنك التحقق من عدد الصفوف التي تم إرجاعها باستخدام mysql_num_rows ().

على افتراض حلقة الخاص بك هو الاستعلام عن شيء ما حتى يحصل على نتيجة ، سيكون ذلك

while(time()-$time<60 && $num_rows == 0)
{
    $result = mysql_query($query);
    $num_rows = mysql_num_rows($result); 

(لست متأكدًا مما إذا كان ما تفعله هنا فكرة جيدة حقًا ، حيث من المحتمل أن تضع عبئًا فظيعًا على خادم قاعدة البيانات ، لكن هذه مشكلة مختلفة)

mysql_query () سيعود false فقط على الأخطاء "الحقيقية" ، على سبيل المثال استعلام أخطاء إملائية أو اتصال ضائع.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top