繁体   English   中英

无效的参数编号:绑定变量的数量与令牌的数量不匹配SQL

[英]Invalid parameter number: number of bound variables does not match number of tokens SQL

我正在建立一个网站,不需要使用PHP和PDO从表单发送信息。

PHP代码:

$query = 'INSERT INTO commentary (name,  surname,  email,  user_comment, user_id ) VALUES ( :name,  :surname,  :email,  :user_comment, '.$_SESSION['id'].') ';

$query_p = array(':name' => $_POST['name'],':surname' => $_POST['surname'], ':email' => $_POST['email'],':user_comment' => $_POST['email'], ':user_id'=>$_SESSION['id']); 

try 
{ 
    $statment = $dbh->prepare($query); 
    $result = $statment->execute($query_p); 
} 
catch(PDOException $e) 
{ 

    die("Can't run this query: " . $e->getMessage()); 
}

HTML代码:

 <h1 class="contactHeader"> Form</h1>
<div class="form">
<form  id="contact" name="contact" method="post" action="user.php"  onreset="return confirm('Chcete to vymázat?')" method="post">

  <label class="leftElement"  for="name">Name </label><span class="required">*</span><br />
    <input class="leftElement" id="name" name="name" type="text" ><br />
  <label class="centerElement" for="surname">Surname:</label><span class="required">*</span><br />

   <input class="centerElement"  type="text" name="surname" id="surname"><br />
   <label class="leftElement"  for="email">Email: </label><span class="required">*</span><br />
   <input class="leftElement" type="text" name="email" id="email"><br />
    <label class="centerElement"   for="user_comment">Comment:</label><br />


     <textarea
     class="centerElement" id="user_comment" name="user_comment" rows="7" cols="30"></textarea><br />
     <input type="submit" name="submit" id="submit" value="Send">
    <input type="reset" name="reset" id="reset" value="Reset">
</form>

在表“ comentary”的数据库中,我有id,name,surname,email,user_comment和user_id,它们从会话$_SESSION['id'] 但是,当我尝试发送此表单时,出现错误SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens,可能是我做错了吗? 数据库连接正常。 我已经控制了

谢谢。

$query = 'INSERT INTO commentary (name,  surname,  email,  user_comment, user_id ) VALUES ( :name,  :surname,  :email,  :user_comment, '.$_SESSION['id'].') ';

$query_p = array(':name' => $_POST['name'],':surname' => $_POST['surname'], ':email' => $_POST['email'],':user_comment' => $_POST['email'], ':user_id'=>$_SESSION['id']); 

您没有为user_id设置:placeholder,所以不要在execute设置一个。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM