donglei1616 2018-05-12 10:36
浏览 69
已采纳

PHP PDO查询执行不保存传递的数据

I've a problem with PDO prepared statements using mysql. When the query is executed it will save into the preposed table the placeholders that I've binded using the bindParam() method. Here is the code and here is a screen of the result of the execution of the query. How i can solve this embaracing problem? I'm a newbie on PDO!

PHP (This is the controller that is called using ajax).

if(isset($_POST['code'])){

$code = filter_var($_POST['code'],FILTER_SANITIZE_STRING);    
$qty = filter_var($_POST['quantity'],FILTER_SANITIZE_STRING);  
$brand = filter_var($_POST['brand'],FILTER_SANITIZE_STRING);
$article_name = filter_var($_POST['artName'],FILTER_SANITIZE_STRING);  
$price = filter_var($_POST['price'],FILTER_SANITIZE_STRING);
$article_type = filter_var($_POST['artType'],FILTER_SANITIZE_STRING); 
$note = filter_var($_POST['note'],FILTER_SANITIZE_STRING);    

$save = $core->insert_article($code,$qty,$brand,$article_name,$price,$article_type,$note);    

if($save){
echo 'ok';    
} else {
echo 'error';    
}

}

PHP 2 (this is the function of the class who manage all the database operations)

public function insert_article($code,$qty,$brand,$article_name,$price,$article_type,$note){

$db = $this->init_db();    

$sql = "INSERT INTO products (cod_articolo, pezzi_disponibili, marca, nome_articolo, prezzo, tipologia_articolo, note) VALUES (':cod_articolo',':pezzi_disponibili',':marca',':nome_prodotto',':prezzo',':tipologia_articolo',':note')";    
$stmt = $db->prepare($sql);    

$stmt->bindParam(':cod_articolo',$code,PDO::PARAM_STR);
$stmt->bindParam(':pezzi_disponibili',$qty,PDO::PARAM_STR);
$stmt->bindParam(':marca',$brand,PDO::PARAM_STR);
$stmt->bindParam(':nome_articolo',$article_name,PDO::PARAM_STR);
$stmt->bindParam(':prezzo',$price,PDO::PARAM_STR);
$stmt->bindParam(':tipologia_articolo',$article_type,PDO::PARAM_STR);
$stmt->bindParam(':note',$note,PDO::PARAM_STR);

if($stmt->execute()){
echo 'ok';    
} else {
echo 'error';    
}    

}

This is the screen of the results after that the query is executed table after query execution

  • 写回答

1条回答 默认 最新

  • douxuan4556 2018-05-12 10:41
    关注

    Try removing the single quotes surrounding the binding part

    $sql = "INSERT INTO products (cod_articolo, pezzi_disponibili, marca, nome_articolo, prezzo, tipologia_articolo, note) VALUES (:cod_articolo,:pezzi_disponibili,:marca,:nome_prodotto,:prezzo,:tipologia_articolo,:note)";    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 c#窗体设计器错误如何解决?
  • ¥30 征集Python提取PDF文字属性的代码
  • ¥15 如何联系真正的开发者而非公司
  • ¥15 有偿求苍穹外卖环境配置
  • ¥15 代码在keil5里变成了这样怎么办啊,文件图像也变了,
  • ¥20 Ue4.26打包win64bit报错,如何解决?(语言-c++)
  • ¥15 clousx6整点报时指令怎么写
  • ¥30 远程帮我安装软件及库文件
  • ¥15 关于#自动化#的问题:如何通过电脑控制多相机同步拍照或摄影(相机或者摄影模组数量大于60),并将所有采集的照片或视频以一定编码规则存放至规定电脑文件夹内
  • ¥20 (求远程解决)深信服vpn-2050这台设备如何配置才能成功联网?