我的代码有错误。确实,当我尝试执行请求时,“在准备好的语句中没有为参数提供数据”。我在做什么错了?
<?php
require_once "db_connect.php";
if(isset($_POST["id"]) && !empty($_POST["id"])) {
$id = $_POST["id"];
$sql = DB::prepare("UPDATE objects SET name=?, description=?, ab_name=?, ab_email=?, approved_by=?, location=?, address=?, domain=?, phone=?, worktime=?,
price=?, ex_description=?, update_time=?, area=?, category=?, city=?, subway=? WHERE id='" .$_POST["id"]. "';");
if($sql->execute()){
header("location: /www/public_html2/adminconfirm.php");
exit();
}else{
//echo "Something went wrong. Please try again later.";
printf("Error: %s.\n", $sql->error);
var_dump($sql->execute());
}
}
?>
答案 0 :(得分:0)
在使用准备好的语句时,需要使用bind_param
方法将变量绑定到查询中的问号。实际上,mysql在执行时希望每个问号都有变量。
看一眼:
prepared statements manual