2014-07-16 42 views
0

$db包含與數據庫的連接。 我收到foreach聲明中的錯誤。在以下php代碼中獲取錯誤

錯誤消息:

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY093]: Invalid  parameter number' in /home/a5057270/public_html/insert2.php:33 Stack trace: #0 /home/a5057270/public_html/insert2.php(33): unknown() #1 {main} thrown in /home/a5057270/public_html/insert2.php on line 

這裏的PHP代碼:

$date = $_GET['date']; 
$time = $_GET['time']; 
$mode = $_GET['mode']; 
$tfno = $_GET['tfno']; 

$params = array(':date' => $date); 
$query = "SELECT * FROM cabs WHERE DATE=':date' "; 

if ($mode!=='' || $mode!=="") { 
    $query .="AND MODE=':mode' "; 
    $params[':mode'] = $mode; 
} 

if ($tfno!=='') { 
    $query .="AND TFNO=':tfno' "; 
    $params[':tfno'] = $tfno; 
} 
$query .="ORDER BY TIME"; 

$req = $db->prepare($query); 
$req->execute($params); 

//Build Result String 
$display_string = "<article class='container box style3'><section><header><h3><u><b>Here Are The Results...!!</u></b></h3></header><div class='table-wrapper'><table class='default'><thead><tr><th>ID</th><th>Name</th><th>Description</th><th>Contact No.</th></tr></thead><tbody>"; 

// Getting Error in the line Below 

foreach ($req as $row) { 
    $display_string .="<tr><td>" . $row[IDNO] . "</td><td>" . $row[NAME] . "</td><td><ul><li> Date : " . $row[DATE] . "</li><li> Time : " . $row[TIME] . "</li><li> 

Train/Flight No. " . $row[TFNO] . "</li></ul></td><td>" . $row[CONTACT] . "</td></tr>"; 


} 


$display_string .= "</table>"; 
+0

你怪我在開玩笑嗎? 「我的主人不支持foreach語句嗎?」那也是粗體:| – khandelwaldeval

+0

哈哈..我錯了....我有懷疑becuz我使用免費主機 – PRP

+0

免費託管用戶喜歡你。一百美元小費:下載WAMPserver並使用本地主機練習PHP。它運行時沒有互聯網,並支持免費主機的所有功能(更多)。我還使用了免費的主機,但是當我還是學習者的時候,他們就吸了。他們會刪除你的數據庫,而你甚至不知道這些服務器何時停止。去它的只有40 mbs的谷歌wampserver和非常容易設置。是的,你可以感謝我 – khandelwaldeval

回答

1

那是因爲你把''在你PDO瓦爾... 刪除它們,一切都很好。 示例:使':mode'=>:模式沒有'',它將工作。

$params = array(':date' => $date); 
$query = "SELECT * FROM cabs WHERE DATE=:date "; //No '' here 

if ($mode!=='' || $mode!=="") { 
    $query .="AND MODE=:mode "; //No '' here 
    $params[':mode'] = $mode; 
} 

if ($tfno!=='') { 
    $query .="AND TFNO=:tfno ";//No '' here 
    $params[':tfno'] = $tfno; 
} 
+0

仍然得到同樣的錯誤後,這樣做 – PRP

+0

你必須刪除所有這些...更新了代碼。 – CodeBird

+0

亞做到了這一切 – PRP