无法使 bind_param() 正常工作
Can't get bind_param() working correctly
我试图在从数据库中检索值后在我的数据库上执行简单的插入操作,我正在按照与在数据库中插入值相同的过程从数据库中检索值,但我得到以下信息错误:
Fatal error: Uncaught Error: Call to a member function bind_param() on boolean
这是我的代码:
$getuid = $mysqli->prepare("SELECT id FROM members WHERE email = ?");
$getuid->bind_param("s", $email);
$getuid->execute();
$getuid->bind_result($uid);
$nombre = $_POST['nombre'];
$direccion = $_POST['direccion'];
$codpost = $_POST['codpost'];
$municipio = $_POST['municipio'];
$estado = $_POST['estado'];
while($getuid->fetch()){
echo("INSERT INTO infoclientes VALUES ($uid, $nombre, $direccion, $codpost, $municipio, $estado)");
$infocte = $mysqli->prepare("INSERT INTO infoclientes VALUES(?, ?, ?, ?, ?, ?)");
$infocte->bind_param("ssssss", $uid, $nombre, $direccion, $codpost, $municipio, $estado);
$infocte->execute();
$infocte->close();
}
$getuid->close();
显然,错误来自
$infocte->bind_param("ssssss", $uid, $nombre, $direccion, $codpost, $municipio, $estado);
这是第二次bind_param之前回显的输出:
INSERT INTO infoclientes VALUES (1, Fernando Cervantes, Av. Pie de la cuesta 2, 76158, Querétaro, Querétaro)
我成功了!我只是将 $getuid->close() 移动到 echo() 之前的行。我想就像@LouisLoudogTrottier 提到的那样,我试图在打开同一个连接时准备两个查询。
我试图在从数据库中检索值后在我的数据库上执行简单的插入操作,我正在按照与在数据库中插入值相同的过程从数据库中检索值,但我得到以下信息错误:
Fatal error: Uncaught Error: Call to a member function bind_param() on boolean
这是我的代码:
$getuid = $mysqli->prepare("SELECT id FROM members WHERE email = ?");
$getuid->bind_param("s", $email);
$getuid->execute();
$getuid->bind_result($uid);
$nombre = $_POST['nombre'];
$direccion = $_POST['direccion'];
$codpost = $_POST['codpost'];
$municipio = $_POST['municipio'];
$estado = $_POST['estado'];
while($getuid->fetch()){
echo("INSERT INTO infoclientes VALUES ($uid, $nombre, $direccion, $codpost, $municipio, $estado)");
$infocte = $mysqli->prepare("INSERT INTO infoclientes VALUES(?, ?, ?, ?, ?, ?)");
$infocte->bind_param("ssssss", $uid, $nombre, $direccion, $codpost, $municipio, $estado);
$infocte->execute();
$infocte->close();
}
$getuid->close();
显然,错误来自
$infocte->bind_param("ssssss", $uid, $nombre, $direccion, $codpost, $municipio, $estado);
这是第二次bind_param之前回显的输出:
INSERT INTO infoclientes VALUES (1, Fernando Cervantes, Av. Pie de la cuesta 2, 76158, Querétaro, Querétaro)
我成功了!我只是将 $getuid->close() 移动到 echo() 之前的行。我想就像@LouisLoudogTrottier 提到的那样,我试图在打开同一个连接时准备两个查询。