【发布时间】:2015-06-10 15:51:59
【问题描述】:
我在下面有一个插入查询,正在检查插入是否成功,使用:mysqli_stmt_execute。由于未将值输入到我的数据库中,因此查询未执行。但是,我正在进入if 条件。我无法理解这。我之前已经将stmt_prepare 包装在if 条件中,并且它也正在返回true,它正在成功准备。我对绑定语句做了同样的事情,现在我在最后的执行语句中有了它。全部返回 true,但查询未执行。表的结构是正确的。我什至在 phpmyadmin 中进行了插入,并将生成的查询粘贴到我的 AddToken 变量中。
$con = 'my login credentials'
$stmt = mysqli_stmt_init($con);
$AddToken = "INSERT INTO `auth` VALUES ('',?, ?)";
mysqli_stmt_prepare($stmt, $AddToken);
mysqli_stmt_bind_param($stmt, "si", $Token, $ID);
if (mysqli_stmt_execute($stmt)){
$message2 = "here";
// worked
}
else{
//didn't work
$message2 = "here 2";
}
echo $message2;
编辑我不知道问题出在哪里,但我删除了我的 auth 表并重新创建它并且它有效?
【问题讨论】:
-
您的
''是否保留为主键?如果是,请改用 DEFAULT -
@Mihai 尝试了带引号和不带引号的 DEFAULT,导致准备语句失败
标签: php mysqli prepared-statement procedural