PDOStatement::execute() pdostatement.execute: SQLSTATEHY093:无效的参数号:绑定变量的数量与收到此错误的 im中的令牌数不匹配,为什么?列名是正确的。

$baslik = $_POST["makale_basligi"];
$icerik = trim($_POST["makale_icerigi"]);
$meta_desc = $_POST["makale_meta_description"];
$id = $_POST["makale_id"];
$kategori = $_POST["makale_kategorisi"];
$makale_link = convertTextToLinkFormat($baslik);
$update_makale = $db->prepare("UPDATE makale SET "
. "makale_kategorisi = :kategori,"
. "makale_link_baslik = :link,"
. "makale_baslik = :baslik, "
. "makale_icerik = :icerik, "
. "makale_meta_description = :desc WHERE makale_id = '".$id."' ");
$update_makale->execute(array(':kategori'=>$kategori,':link'=>$makale_link ,':baslik' =>$baslik,':icerik' =>$icerik,':desc' =>$meta_desc));发布于 2014-03-01 14:17:59
我认为硬编码$id值并将其与PDO参数混合并不是一个好主意。它容易出错,而且Id被定义为表中的int,那么为什么要引用它呢?
将其与其他参数一起放在数组中:
$update_makale = $db->prepare("UPDATE makale SET "
. "makale_kategorisi = :kategori,"
. "makale_link_baslik = :link,"
. "makale_baslik = :baslik, "
. "makale_icerik = :icerik, "
. "makale_meta_description = :desc WHERE makale_id = :id");
$update_makale->execute(array(
':kategori' => $kategori,
':link' => $makale_link,
':baslik' => $baslik,
':icerik' => $icerik,
':desc' => $meta_desc,
':id' => $id
));https://stackoverflow.com/questions/22104592
复制相似问题