MySQL 和 PostgreSQL 引用字段名称之间的 PHP PDO 兼容性

标签 php mysql postgresql pdo

我的源代码是:

$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抽象`或"用法?

最佳答案

How to use PDO to abstract the ` or " usage based on DB DRIVER?

不。 PDO 没有能力做这样的事情。您可以使用框架(Zend 框架的 Zend\Db 很适合),或者使用 ISO SQL 语法(例如,仅使用不带引号的字符命名列)

关于MySQL 和 PostgreSQL 引用字段名称之间的 PHP PDO 兼容性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13037319/

相关文章:

php - 模型工厂与现有模型的关联

php - 图片不显示后端或前端-magento 1.9.3.1 v

mysql - 为什么事务完成后 hibernate session 没有关闭

SQL:在第一个匹配行条件下连接 2 个表

php - 获取用户在当前页面之前查看的页面

php - 无需开发人员/api key 即可从 youtube 获取 Youtube 标题

mysql - 编写 SQL 更新语句

mysql - 其中 'foo' 或 'bar' 和 'lol' 或 'rofl' MySQL

postgresql - 将laSTLogin保存在表中

c# - ASP.net C# 中的动态警告框