ماذا ستكون نتيجة $ عندما لا تعيد MySQL شيئًا؟
-
26-09-2019 - |
سؤال
قد يبدو هذا بسيطًا بشكل يبعث على السخرية ، لكنني حصلت على كل أنواع الأخطاء اعتمادًا على كيفية التعامل مع استعلام لا يعيد شيئًا.
$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
فقط على الأخطاء "الحقيقية" ، على سبيل المثال استعلام أخطاء إملائية أو اتصال ضائع.
لا تنتمي إلى StackOverflow