【问题标题】:pdo not binding valuepdo 不绑定值
【发布时间】:2012-10-10 18:41:31
【问题描述】:

请尝试从 mysqli 转移到 pdo 但运行此代码

          <?php
  $sql = "select concat(register.fname ,' ' ,register.lname) as name,register.matric   as matric,register.username as uname,register.sex as sex,register.phone as phone ,register.passport as passport ,register.email as email,register.level as level,faculty.fac_name as fac,dept.dept_name as dept,diary.diary as diary,diary.date_added as added from register,faculty,dept,diary where register.user_id = :_id  and diary.username = :name limit 1";
$sth = $dbh->prepare($sql);
$sth->bindValue(':id', $id, PDO::PARAM_INT);
$sth->bindParam(':name', $username);
$sth->execute();


    ?> 

显示此错误 (!) 警告:PDOStatement::bindValue() [pdostatement.bindvalue]: SQLSTATE[HY093]: Invalid parameter number: parameter was not defined in C:\wamp\www\uni\det\viewuser .php 在第 14 行

【问题讨论】:

    标签: php pdo mysqli


    【解决方案1】:

    在查询中,您在绑定值 :id 中将其命名为 :_id

    【讨论】:

      【解决方案2】:

      您有:_id,请在您的bindValue 调用中更改它

      【讨论】:

        【解决方案3】:

        您将变量$id 绑定到:id,但在语句中您需要:_id

        $sth->bindValue(':_id', $id, PDO::PARAM_INT);
        

        或者换个说法:

          $sql = "select concat(register.fname ,' ' ,register.lname) as name,register.matric   as matric,register.username as uname,register.sex as sex,register.phone as phone ,register.passport as passport ,register.email as email,register.level as level,faculty.fac_name as fac,dept.dept_name as dept,diary.diary as diary,diary.date_added as added".
                   "from register,faculty,dept,diary ".
                  " where register.user_id = :id  and diary.username = :name limit 1";
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-03-31
          • 2012-09-02
          • 2015-05-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-11-24
          相关资源
          最近更新 更多