我试图自定义我的ERP,它与一些带有一些php文件的PostgreSQL数据库一起使用。 - 当我使用选择查询显示结果时,一切都运行良好,我得到了结果。 - 当我插入默认值或整数时,我不会收到错误并且插入工作正常。但是,当我尝试插入字符串时,我总是会收到错误。
Display.php的
<?php
$dbconn = pg_connect("host='x.X.x.X' port='x'
dbname='x' user='x' password='x'") or
die("unable to connect database");
$query = 'SELECT * FROM "OpenConcerto48"."CLIENT" ';
$result = pg_query($dbconn, $query);
if (!$result) {
echo null;
exit;
}
$resultArray = pg_fetch_all($result);
echo json_encode($resultArray);
pg_close ($dbconn);
?>
insert.php
$dbconn = pg_connect("host='x.X.X.X' port='x' dbname='x' user='x'
password='x'") or die("unable to connect database");
$a = pg_escape_string('sarl') ;
//Insertion in db work well when values are "default" or integer and i get this error : ERREUR: la colonne « test » n'existe pas LINE 3: VALUES (DEFAULT,DEFAULT, "test", DEFAULT) ^
$query = 'INSERT INTO "OpenConcerto48"."CLIENT"
("ID","FORME_JURIDIQUE","NOM","CODE")
VALUES (DEFAULT,DEFAULT, 58, DEFAULT)';
//Insertion don't work when i try to insert a string
$query = 'INSERT INTO "OpenConcerto48"."CLIENT"
("ID","FORME_JURIDIQUE","NOM","CODE")
VALUES (DEFAULT,DEFAULT, "test", DEFAULT)';
if (pg_query($dbconn,$query))
{
echo "saved";
}
else
{
echo "error insering data ";
echo pg_last_error($dbconn);
//echo pg_last_error($query);
}
问题是当我插入一个字符串时,它认为它是一个列,我收到一个错误。 ps:我的数据库中有很多模式,而且我正在使用表客户端上的模式openconcerto48。
答案 0 :(得分:0)
相反,如果
VALUES (DEFAULT,DEFAULT, "test", DEFAULT)';
使用单引号:
VALUES (DEFAULT,DEFAULT, 'test', DEFAULT)';
在之前的查询中你也很奇怪
VALUES (DEFAULT,DEFAULT, 58, DEFAULT)';
因此,如果58也是一个字符串,则应使用'58'
尝试 PHP DEMO :
<?php //php 7.0.8
$query = 'INSERT INTO "OpenConcerto49"."CLIENT"
("ID","FORME_JURIDIQUE","NOM","CODE") VALUES
(DEFAULT,DEFAULT,\'test\', DEFAULT)';
echo $query;
?>
答案 1 :(得分:0)
@KarstenKoop, 我试过了:
$a = 'sarl';
$query = 'INSERT INTO "OpenConcerto49"."CLIENT"
("ID","FORME_JURIDIQUE","NOM","CODE") VALUES
(DEFAULT,DEFAULT,pg_escape_string('.$a.'), DEFAULT)';
得到了这个错误:
ERREUR: la colonne « sarl » n'existe pas LINE 3: VALUES(DEFAULT,DEFAULT,pg_escape_string(sarl), DEFAULT) ^ –