我正在尝试使用此查询,但我收到此错误:
警告:mysqli_stmt :: bind_result()[mysqli-stmt.bind-result]:绑定变量数与预准备语句中的字段数不匹配
我认为问题是子查询,因为如果我只使用:
SELECT id_location_home FROM location_home WHERE location_home.location = ?
错误消失。
问题
($sql = $db -> prepare("
UPDATE `database_charts`.`single_user`
SET `location_home_id_location_home` = (
SELECT id_location_home FROM location_home
WHERE location_home.location = ?)"
));
$sql -> bind_param('s', $location); // error here
$sql -> execute();
我怎么能解决这个问题?可以将此查询更改为连接吗?可能解决了这个问题。
答案 0 :(得分:0)
你试过这个吗?
UPDATE `database_charts`.`single_user`
SET `location_home_id_location_home` = location_home.id_location_home
FROM location_home
WHERE location_home.location = ?
此外,你的查询似乎很可疑。你真的想更新single_user中的每一行吗?