准备好的陈述保持虚假

时间:2014-04-30 13:48:54

标签: php mysqli prepared-statement

我正在准备一份不断返回虚假的声明。

$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。有任何想法吗?被困在这一行的HOURS

2 个答案:

答案 0 :(得分:2)

您没有将列包裹在括号内,而且您错过了edate

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

echo var_export($stmt,true);

error reporting添加到文件的顶部,这将有助于在生产测试期间。

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

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

报告相关链接时出错:

答案 1 :(得分: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)"