【发布时间】:2012-10-01 23:25:02
【问题描述】:
我有一个 mysqli 函数将一行插入到表中。我正在恢复错误
Warning: mysqli_stmt::bind_result(): Number of bind variables doesn't match number of
fields in prepared statement
这对我来说很奇怪,因为我认为 insert nto 返回真或假。这是使用 sql 语句的函数。
function add_project_deadline ($mysqli, $project_id, $deadline) {
if ($stmt = $mysqli->prepare("INSERT INTO `project_deadline` (project_id, deadline)
VALUES (?, ?)")){
$stmt->bind_param('is', $project_id, $deadline);
$stmt->execute();
$stmt->bind_result($return);
$stmt->close();
return $return;
} else {return false;}
}
我的问题是为什么我会收到此 bind_result 错误以及如何修复它。
【问题讨论】:
-
首先阅读错误/警告消息消息:-1 以帮助鼓励这一过程。现在,为什么会这样说?哪些变化可能会“修复”它?
-
我确实阅读了错误消息。我一直认为,如果它返回true,那么就会有一个可以绑定到变量的结果。除非你不能,如果是这样的话,我怎么知道查询通过了?如果我错了,那么我是否假设插入查询会返回多个结果?我真的不知道。我只是想要启发和解释什么 insert into 返回真或假,以及当使用 mysqli 进行查询时如何返回该值。
-
而您的插入是否有效,您可以在execute查看返回值