我收到了错误
Fatal error: Uncaught Error: Call to a member function bind_param() on boolean
在这一行:
$stmt->bind_param("i", $r);
我的查询准备正确吗? 我检查了表和列的名称,它们是正确的
$stmt = $conn->prepare("UPDATE db_control SET cve_usuario=? WHERE cve_control=1");
$stmt->bind_param("i", $r);
继承我的整个代码:
<?php
$servername = "localhost";
$username = "usuario";
$password = "usuario";
$database = "proyectofinal";
// Create connection
$conn = new mysqli($servername, $username, $password, $database);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$stmt = $conn->prepare("SELECT cve_usuario FROM db_control");
if($stmt->execute())
{
$stmt->bind_result($r);
if($stmt->fetch()){
echo $r;
}
$r = $r + 1;
echo "<br>" . $r;
$stmt = $conn->prepare("UPDATE db_control SET cve_usuario=? WHERE cve_control=1");
$stmt->bind_param("i", $r);
if($stmt->execute())
{
/*do something*/
}
}
?>
答案 0 :(得分:-1)
来自documentation of mysqli::prepare
:
返回值
如果发生错误,
mysqli_prepare()
将返回一个语句对象或FALSE
。
您应该检查 如果您想知道导致prepare
调用是否成功通过严格检查($stmt !== FALSE
),尽管在此特定情况中也可以使用简单的if ($stmt)
。< / p>
prepare
呼叫失败的原因,您可以查看错误代码/消息:$stmt = $conn->prepare("...");
if ($stmt) {
// bind parameters, execute statement, etc
} else {
echo "MySQLi error: " . $conn->error;
}
答案 1 :(得分:-1)
我解决了!在准备第二个查询之前忘记关闭连接。
这就是诀窍!感谢