#php #plpgsql
#php #plpgsql
Вопрос:
У меня есть моя функция plpgsql (которая работает очень хорошо
CREATE OR REPLACE FUNCTION inscription (client.nom%type, client.prenom%type, client.adresse%type, client.cp%type, client.ville%type, client.pays%type) RETURNS INTEGER AS $
DECLARE
res client.code%type;
BEGIN
IF EXISTS (SELECT * FROM client WHERE nom = $1 AND prenom = $2 AND adresse = $3) THEN
RETURN 0;
ELSE INSERT INTO client VALUES(DEFAULT,$1,$2,$3,$4,$5,$6) RETURNING code INTO res;
RETURN res;
END IF;
END;
$ LANGUAGE plpgsql;
и мой php-код
$conn = new PDO("pgsql:host=$servername;dbname=$dbname", $username, $password);
$select = "select inscription ('qq','pccccp','lldddl','76000','ROUEN','FRANCE');";
$stmt = $conn->query($select);
print_r($stmt->fetch()[0]);
Моя страница php всегда возвращает 0 И вставляет значения
Ответ №1:
Моя страница php всегда возвращает 0 И вставляет значения
Наиболее вероятная причина заключается в том, что вы делаете предположения о порядке атрибутов в отношении. Попробуйте изменить вставку, чтобы использовать явные столбцы.
INSERT INTO CLIENT
(UNKNOWNATTRIBUTE, nom, prenom, adresse, type, villee, pays)
VALUES
(DEFAULT, $1, $2, $3, $4, $5, $6)
Комментарии:
1. Я сделал это, но все еще имею такое же странное поведение.. Печать ‘0’ И вставка в мою базу данных