我正在寻找一种简洁的方法来逃避SQL查询的价值而不用引用它。
假设我有一个值It's cool
。现在我想简单地获取转义字符串It\'s cool
,就像为mysqli_real_escape_string()
驱动程序使用mysqli
函数时一样。
问题是所有Zend\Db\Adapter\Platform
接口的引用方法都会为该值添加单引号,这意味着我得到'It\s cool'
。
我发现这样做的最简单方法是在使用quoteValue()
方法后修剪引号。
$raw = "It's cool";
$quoted = $this->db->platform->quoteValue($raw);
$final = trim($quoted, "'");
但它当然是一个肮脏的解决方案,我不希望它在我需要仅转义值的每个地方都是这样。
在Zend2中有没有干净的方法来做这个简单的事情?
答案 0 :(得分:1)
也许你可以尝试这样的事情:
$sql = "UPDATE posts set comment = :value where id = :id";
$data = ['value' => "It's cool", 'id' => 123];
$stmt= $this->tableGateway->getAdapter()->createStatement($sql);
$stmt->prepare($sql);
$stmt->execute($data);