【发布时间】:2015-12-02 02:10:47
【问题描述】:
我有一个 PHP 脚本,有时会在一个脚本运行中多次调用一个函数。
函数如下所示:
function insert_values($values) {
$sql = "insert into...";
pg_prepare($connection,"statement_name",$sql);
pg_execute($connection,"statement_name",array($values));
}
到目前为止一切都很好 - 当它执行一次时
但是,如果我的脚本在同一连接上多次调用此函数,PHP 会给出警告:
[Tue Dec 01 20:58:31 2015] [error] [client 10.64.241.13] PHP Warning: pg_prepare(): Query failed: ERROR: prepared statement "insert_values" already exists in /var/www/include/classes/classes.php on line 955
现在,如果这只是一个简单的 PHP 警告,我可能不会注意它。
但是在 Postgres 端,它声明 Query failed: ERROR - 所以查询当然不会运行。
显然我理解为什么 Postgres 会杀死在同一连接上创建具有相同名称的新预准备语句的人。
所以....有人知道是否有一种简单的方法来检查if 准备好的语句是否已经存在,如果它已经存在,那么只需获取已经创建的准备好的语句?
谢谢。
【问题讨论】:
标签: php postgresql prepared-statement