如何在查询中转义多个引号?

时间:2015-12-11 00:27:43

标签: mysql pdo quotes

我有这样的查询:

" SELECT IF(table.edited > 0, '<i title="c.edited"></i>','') AS edited, ... "
^                             ^         ^

上面的查询有一个pdo-syntax-error ...!这是关于引用。我该如何解决?

3 个答案:

答案 0 :(得分:1)

反斜杠,与PHP中的任何其他字符串相同,并带有引号:

" SELECT IF(table.edited > 0, '<i title=\"c.edited\"></i>','') AS edited, ... "

答案 1 :(得分:1)

使用PDO bindValue插入干净的字符串:

$query = "SELECT filename
           FROM Posters
           WHERE name = :name";
$statement = $this->db->prepare($query);
$statement->bindValue(':name', $name);
$statement->execute();
return $statement->fetchAll(PDO::FETCH_ASSOC);

答案 2 :(得分:-1)

试试这个:

" SELECT IF(table.edited > 0, CONCAT('<i title=\"', c.edited, '\"></i>','') AS edited, ..."

使用CONCAT合并c.edited和字符串。

使用\转义引用(正如@Aaron Mason在回答中提到的那样)