2014-04-30 157 views
-1

我正在準備一個不斷返回false的聲明。準備好的聲明保持爲假

$db = dblogin(); 
$stmt = $db->prepare("INSERT INTO `tor_request` `name`,`sdate`,`edate,`reason`,`comment` VALUES (?,?,?,?,?)"); 

echo var_export($stmt,true); 
//$stmt->bind_param('siiss',$_POST['name'],$_POST['sdate'],$_POST['edate'],$_POST['reason'],$_POST['comment']); 
//$result = $stmt->execute(); 

dblogin無處不在,它已被廣泛測試。我在這個聲明中找不到錯誤。它一遍又一遍地返回錯誤。我已經評論了bind_param$result,因爲我無法通過準備。這不是Object。有任何想法嗎?已被卡在這一行的時間

+0

你忘了括號在你的INSERT列,請參閱[插入MySQL的句法(HTTP://dev.mysql的.com/DOC/refman/5.6/EN/insert.html)。 –

回答

2

你是不是你的包裹欄括號內,再加上你錯過了一個反引號周圍edate

$db = dblogin(); 
$stmt = $db->prepare("INSERT INTO `tor_request` (`name`,`sdate`,`edate`,`reason`,`comment`) VALUES (?,?,?,?,?)"); 

echo var_export($stmt,true); 

添加error reporting到您的文件(S),這將在生產測試幫助的頂部。

error_reporting(E_ALL); 
ini_set('display_errors', 1); 

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT); 

錯誤報告相關鏈接:

+1

錯誤報告是在這裏保存我的東西!謝謝你的提示! – TechHeadDJ

+0

非常歡迎@TechHeadDJ很高興我有幫助。這是一個不可或缺的工具。 –

1
"INSERT INTO `tor_request` (`name`,`sdate`,`edate`,`reason`,`comment`) 
VALUES (?,?,?,?,?)" 

PS:命名參數非常容易閱讀。你有更好的文字。

"INSERT INTO `tor_request` (`name`,`sdate`,`edate`,`reason`,`comment`) 
VALUES (:name,:startDate,:endDate,:reason,:comment)" 
+0

'[Wed Apr 30 09:54:14 2014] [錯誤] PHP致命錯誤:調用成員函數bind_param()中的一個非對象在/ $' 編輯刪除評論,仍然返回false – TechHeadDJ

+0

您需要練習一些基本的調試,在使用CLI之前,確保你的語句實際上在CLI或者phpMyAdmin/SQLYog等工具中運行。這些是基本的語法錯誤。 – Jessica