Ошибка SQL-запроса из-за целого числа

У меня проблема с запросом sql (вставка). Я использую handsontable для сохранения данных в моей базе данных. Так вот моя сетка, где пользователь вводит данные.
Строка «Numéro pe» является числовым полем в базе данных, но это не обязательное поле, поэтому оно может быть пустым !! введите описание изображения здесь

Так как у меня много сеток, подобных этой, я сделал универсальную функцию, которая вставляет данные. Поэтому я создаю строку с такими данными:

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


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

И я вызываю функцию с этой строкой в ​​параметрах, и она отлично работает.

Но моя проблема в том, что моя строка «numéro pe» числовая, запрос не работает.

Вот предупреждение о клопе:

Запрос не выполнен: 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, Commentaires

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- С переменными (две строки, которые я сделал) у меня есть этот запрос (который работает)

ВСТАВИТЬ В
public.parcelle_elementaire (id_traitement, блок, id_pe, id_essai, code_traitement
, Id_bloc, numero_pe, taille_pe, Commentaires)
ЗНАЧЕНИЯ (‘TEST ESSAI2_TRAIT1’, ‘1’, ‘TEST ESSAI2_TRAIT1_1’, ‘TEST ESSAI2’, ‘TEST ESSAI2_TRAIT1’, ‘TEST
ESSAI2_BLOC1’ , », », »);

Но этот запрос не работает, потому что значение, связанное с «Numberro Pe» является числовым в моей базе данных, и я отправляю кавычки '', Но значение не является обязательным полем. Вот почему я не знаю, как это сделать.

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]