gpt4 book ai didi

php - 使用php将数据插入postgresql时出错

转载 作者:行者123 更新时间:2023-11-29 12:37:03 33 4
gpt4 key购买 nike

我正在尝试将一些数据插入到 PostgreSQL 数据库的表中。为此,我使用准备好的语句,例如:

$db = new PDO('pgsql:dbname=wind;user=postgres;password=1249;host=localhost;port=5432');
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

for ($x = 0; $x < sizeof($arrayAddress); $x++) {
$stmt = $db->prepare("INSERT INTO geocoding_test (address,googlemaps) VALUES (address=:address, sucUn=:sucUn ) ");
$stmt->execute(array(address => $arrayAddress[$x], sucUn => $arraySucUnsuc[$x] ));
}

...其中 arrayAddress 是一个包含所有地址的数组,arraySucUnsuc 是一个包含一些字符串的数组。

当我执行此操作时,出现以下错误:

Fatal error: Uncaught exception 'PDOException' with message 
SQLSTATE[42703]: Undefined column: 7 ERROR: column 'address' does not exist
LINE 1: ... INTO geocoding_test (address,googlemaps) VALUES (address=$1... ^
HINT: There is a column named 'address' in table 'geocoding_test', but it cannot be
referenced from this part of the query.' in C:\MAMP\htdocs\Wind\predictVdslEligibilityWSLog-20150614\myWebCrawler.php:98
Stack trace:
#0 C:\MAMP\htdocs\Wind\predictVdslEligibilityWSLog-20150614\myWebCrawler.php(98): PDOStatement-&gt;execute(Array)
#1 {main} thrown in C:\MAMP\htdocs\Wind\predictVdslEligibilityWSLog-20150614\myWebCrawler.php on line98

我做错了什么?

这也是我的表在数据库中的定义:

CREATE TABLE geocoding_test
(
id serial NOT NULL,
address character varying(600),
googlemaps character varying(50)
)

最佳答案

插入语法为:

INSERT INTO tablename (fieldname1, ...) VALUES (value1, ...)

你有

... VALUES (address=:address, ...

您尝试比较 (=) 现有值 address 与您传递的参数的位置。由于这是一个 INSERT 查询,因此该 address1 值尚不存在:您无法读取不存在的内容。

查询应该只是

.... VALUES(:address, :sucUn)

关于php - 使用php将数据插入postgresql时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31433553/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com