我的源代码是:
$db = new PDO("mysql:host=" . $host . ";dbname=" . $dbname, $username, $password);
$sth = $resourceLinkID -> prepare("SELECT * FROM `ant_Action`;");
$sth -> execute();
$result = $sth -> fetch(PDO::FETCH_ASSOC);
print_r($result);
^这是工作!
$db = new PDO("pgsql:dbname=" . $dbname . ";user=" . $user . ";password=" . $password . ";host=" . $host);
$sth = $resourceLinkID -> prepare("SELECT * FROM `ant_Action`;");
$sth -> execute();
$result = $sth -> fetch(PDO::FETCH_ASSOC);
print_r($result);
^这是不工作由于`问题,在PosgreSQL中你必须使用“在这种情况下(”ant_Action“)
如何使用PDO抽象基于DB DRIVER的“或”用法?
答案 0 :(得分:1)
在任何一种情况下都不需要反引号:select * from ant_Action;
将起作用。如果你必须使用后面的蜱,你可能会运气不好。
您可以使用preg_replace()
将查询中的反引号变为双引号,但这可能容易出错。
已编辑 pozs是对的。不要那样做。
答案 1 :(得分:0)
如何使用PDO抽象基于DB DRIVER的“或”用法?
Noways。 PDO不具备此类功能。你可以使用一个框架(Zend框架的Zend \ Db对它很好),或者使用ISO SQL语法,你可以使用它(f.ex.只列名列,而不使用引号的字符)