由于整数

时间:2015-08-03 08:31:04

标签: php postgresql handsontable

我有一个sql请求(插入)的问题。我正在使用handsontable在我的数据库中保存数据。所以这是用户输入数据的网格。 行“Numérope”是数据库中的数字字段,但它不是必填字段,因此它可以为空! enter image description here

由于我有很多像这样的网格,我做了一个插入数据的通用函数。所以我用这样的数据创建一个字符串:

foreach($ligne as $key => $elt)
{       
    $values .= '\''.$elt.'\',';


    if ($key == ($cptIdEssai-1))
    {
        $values .= '\''.$id_essai.'\',';
    }
}

我在参数中使用此字符串调用该函数,它运行正常。

但我的问题是:因为我的行“numérope”是一个数字,所以请求不起作用。

这是关于萤火虫的警告:

  

查询失败:ERREUR:带整数的语法无效:«»   第2行:...... ESSAI2','TEST ESSAI2_TRAIT1','TEST ESSAI2_BLOC1','','','');

Pb请求:

INSERT INTO public.parcelle_elementaire(id_traitement,bloc,id_pe,id_essai,code_traitement,id_bloc,numero_pe,taille_pe,commentaires)
VALUES('TEST ESSAI2_TRAIT1','1','TEST ESSAI2_TRAIT1_1','TEST ESSAI2','TEST ESSAI2_TRAIT1','TEST ESSAI2_BLOC1','','','');

有人可以帮我解决这个问题吗?

编辑:

因此很难解释我的问题,但我会逐步为您提供更多详细信息。

所以:

1-用户在网格中输入数据。

2-当他提交时,我使用Ajax发送此网格的内容,然后将值插入数据库中。

2.1-我用行标题创建第一个字符串,我得到了完全符合的字符串:

  

id_traitement,集团,id_pe,id_essai,code_traitement   ,id_bloc,numero_pe,taille_pe,住客评论

2.2-我用用户编写的数据创建了第二个字符串,我得到了这个字符串:

  

'TEST ESSAI2_TRAIT1','1','TEST ESSAI2_TRAIT1_1','TEST ESSAI2','TEST ESSAI2_TRAIT1'   ,'TEST ESSAI2_BLOC1','','',''

所以,有些数据是空的,而且完全正常。

3-我在函数中发送这两个字符串以插入值

insert($champsBase,$values,$tableBDD); //Here is my call

function update($champsDB,$idUpdate,$tableBDD,$idTable) //Here is the function
{
    $conn_string = "host=localhost port=5432 dbname=test_postgre user=postgres password='1234'";
    $dbconn = pg_connect($conn_string);

  $sql = "UPDATE public.".$tableBDD." SET ".$champsDB." WHERE '.$idTable.'='".$idUpdate."'";
$res = pg_query($sql) or die("Pb avec la requete: $sql");

}

4-使用变量(我制作的两个字符串),我有这个请求(工作正常)

  

INSERT INTO   public.parcelle_elementaire(id_traitement,集团,id_pe,id_essai,code_traitement   ,id_bloc,numero_pe,taille_pe,住客评论)                           VALUES('TEST ESSAI2_TRAIT1','1','TEST ESSAI2_TRAIT1_1','TEST ESSAI2','TEST ESSAI2_TRAIT1','TEST   ESSAI2_BLOC1' , '', '', '');

但是这个请求不起作用,因为链接到“numero pe”的值是我数据库中的数字,我发送引号''。但该值不是必填字段。这就是为什么我不知道该怎么做。

0 个答案:

没有答案