【问题标题】:Error in my prepared pdo insert statements我准备好的 pdo 插入语句中的错误
【发布时间】:2013-09-21 22:04:25
【问题描述】:

我正在尝试使用 pdo 上的准备语句插入值,但我遇到了这个错误

警告:PDOStatement::execute() [pdostatement.execute]: SQLSTATE[HY093]:参数号无效:没有绑定参数 C:\wamp\www\chat\insert.php 第 23 行

$db = new PDO($dns, $user, $pass);

$sql = "INSERT INTO `conversations_t` (`fk_crname_c`, `fk_username_c`, `message_c`) VALUES (?, ?, ?)";

$sq_stat = $db->prepare($sql);
// bind column to variable for display
$sq_stat->bindColumn(1, $chatname);
$sq_stat->bindColumn(2,$username);
$sq_stat->bindColumn(3, $message);


$count=$sq_stat->execute();

【问题讨论】:

    标签: php mysql pdo


    【解决方案1】:

    使用bindParambindValue 而不是bindColumn

    $sq_stat -> bindParam(1, $chatname);
    $sq_stat -> bindParam(2, $username);
    $sq_stat -> bindParam(3, $message);
    

    【讨论】:

      【解决方案2】:

      bindColumn 用于结果。你想要bindValuebindParam

      $sq_stat->bindValue(1, $chatname);
      $sq_stat->bindValue(2,$username);
      $sq_stat->bindValue(3, $message);
      

      【讨论】:

        【解决方案3】:

        对于插入语句,尝试将您的值作为数组传递给执行函数。

        $db = new PDO($dns, $user, $pass);
        
        $sql = "INSERT INTO `conversations_t` (`fk_crname_c`, `fk_username_c`, `message_c`) VALUES (?, ?, ?)";
        
        $sq_stat = $db->prepare($sql);
        
        $count = $sq_stat->execute(array($chatname, $username, $message));
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2015-10-28
          • 1970-01-01
          • 1970-01-01
          • 2016-01-12
          • 1970-01-01
          • 2014-11-23
          • 2011-10-21
          相关资源
          最近更新 更多