panique / pdo-debug
一个返回您PDO语句中完整SQL查询的超级简单函数
This package is auto-updated.
Last update: 2024-09-17 22:49:53 UTC
README
显示PDO构建的SQL查询。真的。背后的魔法:一个简单的函数,它结合了您的参数和原始查询。请注意,这只是一个模拟,不是PDO的“真实”结果,但它几乎适用于所有常见的日常任务。比什么都没有要好得多!
功能
- 一个简单的全局函数
debugPDO($sql, $parameters)
- 支持命名参数(如 ':param_1')和问号参数(如 '?')
- 此存储库还包含一个用于轻松测试以下示例的 .sql 文件
向以下人士致以衷心的感谢
来自这里: http://stackoverflow.com/questions/210564/getting-raw-sql-query-string-from-pdo-prepared-statements,向 bigwebguy (http://stackoverflow.com/users/168256/bigwebguy) 和 Mike (http://stackoverflow.com/users/1083889/mike) 为创建 debugQuery() 函数表示衷心的感谢!
如何添加到项目中
像往常一样,通过Composer(require-dev可能更有用,因为您肯定不需要在生产环境中使用它)来要求这个包。
"require-dev": { "panique/pdo-debug": "0.2" }
如何使用
您的PDO块可能看起来像这样
$sql = "INSERT INTO test (col1, col2, col3) VALUES (:col1, :col2, :col3)";
和这个,对吧?
$query->execute(array(':col1' => $param_1, ':col2' => $param_2, ':col3' => $param_3));
要使用此PDO记录器,您必须稍微重建一下参数数组:创建一个具有标识符作为键和参数作为值的数组,如下所示: 警告:请勿在冒号前写入!键必须是 'xxx',而不是 ':xxx'!
$parameters = array( 'param1' => 'hello', 'param2' => 123, 'param3' => null );
您的完整PDO块将如下所示
$sql = "INSERT INTO test (col1, col2, col3) VALUES (:param1, :param2, :param3)"; $query = $database_connection->prepare($sql); $query->execute($parameters);
现在您可以通过PdoDebugger类的静态方法 show()
使用该PDO日志记录器来调试/记录完整的SQL语句。请确保传递原始SQL语句和包含适当键和值的参数数组。未来的版本可能会有一种更专业的方式来处理这个问题。
echo PdoDebugger::show($sql, $parameters);
此示例的结果将是
INSERT INTO test (col1, col2, col3) VALUES ('hello', 123, NULL)
是的!
支持项目(以及其他项目)
在 DigitalOcean 上租用服务器以支持项目(以及其他项目),或在BuyMeACoffee.com上买杯咖啡。谢谢! :)