php postgresql - 当我尝试插入字符串时,我的请求中出错

时间:2017-11-22 13:01:24

标签: php postgresql

我试图自定义我的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。

2 个答案:

答案 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) ^ –