问题标签 [pdo]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - 哪些 PHP / MySQL 驱动程序或数据库抽象层支持准备好的语句?
我正在开发一个基于默认 PDO 和 PDOStatement 类的扩展版本的项目,因此它使用 PDO 样式命名参数而不是“?” 变量的占位符。
但是,客户现在要求我们考虑使用不同的驱动程序,因为他们的 OS X Web Server 版本显然无法轻松安装此驱动程序。那么是否有人知道任何其他数据库抽象库或数据库访问驱动程序,我可以很容易地使用我们当前的一组功能来扩展它们,这些功能像 PDO 一样采用命名参数?
php - Can PHP PDO Statements accept the table or column name as parameter?
Why can't I pass the table name to a prepared PDO statement?
Is there another safe way to insert a table name into a SQL query? With safe, I mean that I don't want to do
php - 从 PDO 准备好的语句中获取原始 SQL 查询字符串
有没有办法在准备好的语句上调用 PDOStatement::execute() 时执行原始 SQL 字符串?出于调试目的,这将非常有用。
php - 为什么 PHP PDO DSN 是 MySQL 与 PostgreSQL 的不同格式?
当我使用 PDO 连接到 MySQL 数据库时,我需要连接的方式是:
但是,对于 PostgreSQL,DSN 更标准(IMO):
MySQL不能使用单个字符串有什么原因吗?或者这仅仅是因为我使用的版本(PHP 5.2、MySQL 5.0、PostgreSQL 8.1)?
php - 可以将 MySQL 连接转换为 PDO 连接吗?
我在一个应用程序上工作,它只有一种方法来获得一个有效的数据库连接:一个返回 MySQL 连接资源的函数。
我有什么方法可以将该 MySQL 连接转换为 PDO MySQL 连接?
我无法以任何其他方式访问 MySQL 服务器,没有用户名、密码,什么都没有。我也看不到/获取包含函数的文件。稍后我可能会,但我仍然想知道这是否可能。
php - 如何在 PHP 中更改 PDO/SQLite 连接的字符编码?
我有一个 php-gtk 应用程序一直运行到非 utf8 字符串的小问题,我发现问题出在数据库连接中,即使数据库应该是 UTF-8 也是如此。
我曾尝试使用“SET CHARACTER SET utf8”(MySQL 方式)和“SET NAMES UTF8”,但没有任何反应(在“ SQLite 理解的查询语言 ”页面中也没有关于这些命令的任何信息,所以我对此并不感到惊讶)。
PD:也许连接已经是 UTF-8 而数据不是,但如果有办法改变连接编码,这个问题仍然有用。
php - PDO try-catch 在函数中的使用
我正在考虑在我未来的所有 webapp 中使用 PDO。目前(使用到目前为止我从 SO 中学到的知识),我在我的站点中处理数据库连接的是一个像这样的 Singleton 类:
和另一个文件(functions.php),其内容特定的功能看起来与这个完全一样:
这意味着我必须try .. catch
在所有功能中重复该部分。
我的问题是:
- 我应该如何提高效率?(例如,不必
try..catch
在所有功能中重复,但仍然能够在每个功能上返回不同的“失败消息”) - 这已经是一个好习惯了吗?我还是 PDO 和 OOP 的新手(还有很多东西要学),所以(到目前为止),我真的看不出有任何缺点或可以改进的地方。
如果这看起来不清楚或太长,我很抱歉。提前致谢。
php - 是否可以回退 PDO 结果?
我正在尝试为 PDO 语句的结果编写一个迭代器,但我找不到任何倒回第一行的方法。我想避免调用 fetchAll 并存储所有结果数据的开销。
有没有办法重置语句或寻找第一行?
php - PDOStatement::bindParam data_type 参数列表
是否有描述您可以使用的所有 data_type 参数的列表PDOStatement::bindParam()
?如果没有,您通常使用什么,以及用于什么类型的字段?
根据 PHP 手册:data_type使用 PDO::PARAM_* 常量的参数的显式数据类型。
我知道PDO::PARAM_INT
and PDO::PARAM_STR
。我听说过,PDO::PARAM_LOB
但我不确定如何以及何时使用它。(日期?)
php - 如何检测该事务已经开始?
我正在使用 Zend_Db 在事务中插入一些数据。我的函数启动一个事务,然后调用另一个方法,该方法也尝试启动一个事务,当然失败了(我使用的是 MySQL5)。所以,问题是 - 我如何检测交易已经开始?这是一个示例代码:
在 PaymentInstrument::create 内部还有另一个 beginTransaction 语句,它产生表示事务已经开始的异常。