我使用以下代码插入MYSQL表:
try{
$sql="INSERT INTO tblmtd(t_id,t_name,mem_id) VALUES(':t_id',':t_name',':mem_id')";
$stmt=db::con()->prepare($sql);
$stmt->bindParam(':t_id',$tid,PDO::PARAM_INT);
$stmt->bindParam(':t_name',$tNm,PDO::PARAM_STR);
$stmt->bindParam(':mem_id',$mId,PDO::PARAM_INT);
$stmt->execute();
}catch(PDOException $ex){
die("Error occured:".$ex->getMessage());
}
$tid variable has value=1;
$tNm variable has value='CBSE';
$mId variable has value=9
当运行这段代码时,没有生成错误但是在MYSQL表中我观察到字段值为' t_id' = 0,' t_name' = t_name,&#39 ; mem_id' = 0.我只是不明白我的代码有什么问题。但是,有趣的是,当我尝试使用下面提到的代码完成相同的任务时,将适当的数据插入到table.The code是
$db= new Database();
$db->open();
$sql="INSERT INTO tblmtd(t_id,t_name,mem_id) VALUES('$tid','$tNm','$mId')";
$db->query($sql);
答案 0 :(得分:1)
使用PDO绑定参数时,请记住它会自动为您适当地引用和转义。这意味着您需要从VALUES
语句中删除引号,如下所示:
$sql="INSERT INTO tblmtd(t_id,t_name,mem_id) VALUES(:t_id,:t_name,:mem_id)";