2014-07-16 2 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 코드 : 당신이 PDO이 바르 당신의 주위에 ''를 가하고 있기 때문이다

$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

haha..no 나는 틀렸어 .... 나는 의심의 여지가 becuz 나는 무료 호스트를 사용하고 있습니다 – PRP

+0

당신 같은 무료 호스팅 사용자. 백 달러 팁 : localhost로 WAMPserver를 다운로드하고 PHP를 연습하십시오. 그것은 인터넷없이 실행되며 무료 호스트의 모든 기능 (이상)을 지원합니다. 나는 또한 무료 호스트를 사용했지만 그들이 학습자 였을 때 그들은 빤다. 사용자가 모르는 사이에 데이터베이스를 삭제할 것이므로 언제 이러한 서버가 다운되는지 알 수 없습니다. google wampserver는 단지 40MB이며 설치가 매우 쉽습니다. 그래, 당신이 내게 고마워 할 수있다 – khandelwaldeval

답변

1

은 ... 는 그들을 제거하고 모두가 좋다. 예 : ': 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

관련 문제