1

我正在尝试通过其特定于 PostgreSQL 的内置函数使用 PHP 执行查询,但是我无法弄清楚为什么我的查询没有运行。有人可以为我指出以下代码可能有什么问题的正确方向:

//create our final insert statement as a string
$final_insert_query = $beginningOfInsertStmt . $oneRowFormatted . ");";
    echo $final_insert_query; // the output of this is listed below
    // run the query and store result in $result           
    $result = pg_query($dbconn, $final_insert_query);
    if (!$result) {
       echo "An error occurred!!!!.";
       exit;
    }
    else{
    echo $result . " was SUCCESSFUL!";
    }

该脚本的输出当前为:

INSERT INTO POP_HOUSING_ESTIMATE_STATE VALUES(1, 'South', 'East South Central',
'Alabama', 4784762, 4803689, 2173898, 2182088);

An error occurred!!!!.

因此,该$final_insert_query变量应该包含以下字符串(无论如何这似乎是一个有效的 SQL INSERT 语句):

INSERT INTO POP_HOUSING_ESTIMATE_STATE VALUES(1, 'South', 'East South Central',
'Alabama', 4784762, 4803689, 2173898, 2182088);

我还应该提到,我已经通过终端成功地将完全相同的行直接插入到我的 PosgreSQL 数据库中。这里可能是什么问题?

4

2 回答 2

2

这里有几个问题:

我怀疑直接的问题可能是区分大小写;您可能将表创建为,"POP_HOUSING_ESTIMATE_STATE"但您将其查询为POP_HOUSING_ESTIMATE_STATE. 注意不同的引用。有关 PostgreSQL大小写折叠行为的描述,请参阅PostgreSQL 手册中的标识符和关键字。ANSI SQL 需要这种大小写折叠,尽管 PostgreSQL 折叠为小写而不是标准指定的大写。

于 2013-04-29T00:25:28.407 回答
0

如果您能够将您的 SQL 字符串直接粘贴到 postgresql 中,那么您可以排除您的 SQL 语法。这留下了你的联系。这里有几件事可能出错...没有网络路径、密码错误、服务器名称拼写错误、忽略运行 pg_connect() 等。

echo pg_last_error($dbconn)在你运行后立即$dbconn=pg_connect($conn)(但是你已经在你的代码中命名了它)。

于 2013-04-29T00:35:54.257 回答