簡體   English   中英

MySQL和Do While循環超時

[英]MySQL and Do While loop timing out

這是超時的,沒有回顯任何內容,也沒有插入數據庫。 不明白為什么。 有任何想法嗎?

注意它只是簡單地生成許多代碼號,我知道它是簡單且不安全的,它僅在localhost上完成並且連接值正確。

function populate_codes(){
  $con = mysql_connect(dbhost,dbuser,dbpass);
  mysql_select_db(dbname);
  $i = 0;
  do{
    $code = rand(10000000,99999999);
    $check = mysql_query('SELECT * FROM '.dbcodetable.' WHERE code = $code',$con);
    if(!$check){
        $insertcode = mysql_query('INSERT INTO '.dbcodetable.' (code,status) VALUES ($code,1)',$con);
        if($insertcode){
            echo $i.' - '.$code.'<br />';
            $i++;
        }
     }
  }
  while($i <= 1999);
  echo "------------------------<br /><strong>Complete</strong>";
}

您:

  1. $i設置為0
  2. 產生一個隨機數
  3. 執行SQL查詢
  4. 檢查查詢執行是否返回false
  5. 只有這樣做了,並且需要滿足一些其他條件,您才可以最終增加$i
  6. 您重復此操作,直到$i超過1999年為止

問題是您的第四步總是成功 查詢總是成功執行, mysql_query總是返回結果集 您必須檢查結果集以查看其中的內容,而不僅僅是對== false測試。 因此, $i從不遞增。

您還希望在所有這些$i之外增加$i ,或者對無限循環有一般的保護。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM