INSERT查询PDO单引号PDO错误

时间:2016-01-28 23:29:34

标签: php mysql pdo

嗨,我有这个查询,我将信息插入数据库。 提交表单按预期工作。但是,在输入的文本中使用'(撇号)时, 我收到 PDOException SQLSTATE [42000]语法错误或访问冲突:1064

$result = $conn->prepare("UPDATE `news_articles` 
                            SET `postedby`=:postedby,`title`=:title,
                                `short_title`=:short_title, 
                                `article_image`=:article_image,
                                `contents`=:contents,
                                `datetime`=:datetime,
                                `event_datetime`=:event_datetime,
                                `type`=:type 
                           WHERE `articleid`=:articleid");
    $result->bindParam(':articleid', $articleid);
    $result->bindParam(':postedby', $postedby);
    $result->bindParam(':title', $title);
    $result->bindParam(':short_title', $short_title);
    $result->bindParam(':article_image', $article_image);
    $result->bindParam(':contents', $contents);
    $result->bindParam(':datetime', $datetime);
    $result->bindParam(':event_datetime', $event_datetime);
    $result->bindParam(':type', $type);
    $result->execute();

有人知道这是为什么吗?

1 个答案:

答案 0 :(得分:1)

我不是百分之百确定这一点,但是如果您使用->bindParam()的第三个参数来告知数据类型,那么您可能需要纠正此问题

那就是具体的

$result->bindParam(':contents', $contents, PDO::PARAM_STR);

但您应该在所有->bindParam()来电

上使用它
  

手动http://php.net/manual/en/pdostatement.bindparam.php

     

和Param常量http://php.net/manual/en/pdo.constants.php