php pdo查询mdb,如何查看使用php PDO处理的查询? !

我准备我的SQL语句和绑定参数,如果出现问题,我抓住他们在一个catch块。但是,我想看看我处理了哪个查询。所以我扩展了PDO类(在网上找到它,并不完全知道我在做什么,或者ATTR_STATEMENT_CLASS真的在哪里,所以这是扩展的代码:

class PDOTester extends PDO {

public function __construct($dsn, $username = null, $password = null, $driver_options = array()) {

parent::__construct($dsn, $username, $password, $driver_options);

$this->setAttribute(PDO::ATTR_STATEMENT_CLASS, array('PDOStatementTester', array($this)));

}

}

class PDOStatementTester extends PDOStatement {

protected $connection;

protected function __construct(PDO $connection)

{

$this->connection = $connection;

}

public function execute() {

try {

parent::execute();

} catch (PDOException $e) {

$e->errorInfo[3] = $this->queryString;

echo '

';

var_dump($this);

var_dump($this->connection);

echo '

';

throw $e;

}

}

}但是,问题出在这里,我使用命名参数来绑定值,但是当我看到SQl查询时,我看到了命名参数而不是值!

例如,我使用它像:

try {

$sql = "INSERT INTO table (column1, column2) VALUES (:column1, :column2)";

$stmt = $db->preapre($sql);

$stmt->bindParam(':column1', $column1, PDO::PARAM_STR);

$stmt->bindParam(':column2', $column2, PDO::PARAM_INT);

$stmt->execute();

} catch (PDOException $e) {

echo $e->errorInfo[3];

}但后来我看到值:column1,:column2,而不是实际变量!

可以请别人帮我解决问题(例如提供更好的修改我使用的扩展名)?

PHP版本5.2.17,MySQL版本5.0.92

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值