以下内容返回false,我不知道如何找出究竟是什么错误。
$stmt = $dbo->stmt_init();
if($stmt->prepare("INSERT INTO transactions ('id', 'time') VALUES ('',?)")) // returns false
{
}
我有另一个声明,当时选择打开。拥有多个陈述是一个问题吗?
答案 0 :(得分:3)
您是否确认已成功连接数据库?
/* check connection */
if ( mysqli_connect_errno() ) {
printf("Connect failed: %s\n", mysqli_connect_error());
}
至于弄清楚你准备好的陈述有什么问题,你应该能够显示$ stmt->错误,这将返回最新语句错误的字符串描述,以及$ dbo->错误,这将是返回最新的mysqli错误。
printf("Error: %s.\n", $stmt->error);
答案 1 :(得分:0)
您不希望在表名周围添加单引号。它应该是这样的:
$stmt = $dbo->stmt_init();
if($stmt->prepare("INSERT INTO transactions (id, time) VALUES ('', ?)")) {
}
答案 2 :(得分:0)
只检查这些列是否正确输入...因为我得到相同的错误因为我在查询中提到了非现有的列名。