我在PostgreSQL中有这个问题,我在解析一个网页元标记,然后输入请求到pg_query。为了简洁起见,本例中的数据未经过消毒处理。PHP pg_query没有执行
因此,像这样:
foreach ($metas as $meta) {
$property = $meta->getAttribute('property');
$content = $meta->getAttribute('content');
$query = "UPDATE " . $tablename . " SET article_meta = article_meta || '$property=>$content'::hstore where article_id = '{$this -> article_id}' ;";
pg_query($conn, $query);
}
的问题是,查询不执行也没有失败或抛出任何错误。但是,如果我复制已执行的查询并通过诸如pgadmin之类的方式运行它,它就可以工作。所以查询不是无效的。任何想法为什么发生这种情况?
我应该提到,当我添加触发器来更新全文搜索tsvector时,此行为可能已经开始,但我不明白这是如何相关的。
更新
另外我想补充一点,我有一个同步功能是儒,但后来只执行了元标记的分析和查询工作。所以有些地方阻止了查询的执行。
你确定吗?我没有看到你的代码中的任何调试?使用'echo pg_last_error($ dbconn);'并再次检查... – 2013-03-07 11:45:26
这是一个摘录,有调试,因为每当查询失败,它都会提醒我。 – 2013-03-07 11:54:43
_但是如果我复制查询..._只是为了确定。你从哪里复制了查询?你'回声$查询'? – 2013-03-07 11:57:20