我遇到了来自PHP的参数化ADODB Oracle查询的奇怪问题。
当我运行非参数化查询时,如下面的代码:
$conn = &ADONewConnection('oci8');
$conn->debug = true;
$conn->PConnect(false, 'dbuser', 'dbpassword', 'TNS_NAME');
$conn->Execute("SELECT * FROM members WHERE username = 'testusername'");
$conn->Close();
以上运行正常。当我使用如下参数执行完全相同的查询时:
$conn = &ADONewConnection('oci8');
$conn->debug = true;
$conn->PConnect(false, 'dbuser', 'dbpassword', 'TNS_NAME');
$username = 'testusername';
$conn->Execute("SELECT * FROM members WHERE username = :un", array('un' => $username));
$conn->Close();
查询超时。
有趣的是,当我连接到不同的Oracle实例时,在不同的服务器上,参数化查询运行正常。
这里有什么问题?我是否在Oracle数据库的第一个实例上缺少一些允许参数化查询的配置?
谢谢。