我在Oracle表中有一些文本字段,其中包含双引号。如何在选择查询中转义它们,以便我可以在PHP中使用?
如果你正在尝试这样做,很可能是在处理 SQL 注入漏洞。请搜索一下并思考一下你正在做什么。
你应该能够完成
SELECT REPLACE(your_column, '"', '\"') AS your_escaped_column
FROM your_table;
嗯...你可以像选择其他字段一样选择它们。但是当你将东西放入数据库时,你需要对它们进行转义。
这取决于你使用的数据库抽象层或驱动程序的不同机制。
对于驱动程序,我建议使用PDO。这样,无论你使用哪种数据库,为输入转义字段总是类似于以下内容:
// Assuming that $dbh is a valid PDO object, like this one:
// $dbh = new PDO('oci:dbname=//hostname:1521/scott', 'scott', 'tiger');
// That's 'oci:dbname=//hostname:port-number/database', username, password
$sql = "SELECT * FROM myTable WHERE name = ':myName'";
$sth = $dbh->prepare($sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));
$sth->execute(array(':myName' => "Ed O'Neil"));
你试过这样写吗:"\""