pg_query (): запрос не выполнен: ОШИБКА: столбец "x" не существует ЛИНИЯ 2: SET name = x - PullRequest
0 голосов
/ 21 марта 2012

Я работал над чем-то вроде формы регистрации для приложения на Facebook, но вместо того, чтобы ВСТАВИТЬ его ОБНОВЛЕНИЕ, потому что до этого у меня уже была ВСТАВКА

$inserP = "INSERT INTO particular (id, name)
VALUES ($userid, 0)";
pg_query($conn, $inserP);

и я сталкиваюсь с этой ошибкой после отправки формы с именем пользователя tom:

pg_query(): Query failed: ERROR: column "tom" does not exist LINE 2: SET name=tom

Вот моя форма

<form action="update.php" method="post">
<input type="text" name="username" id="username" autocomplete="off" /> 
<input type="image" name="confirm" src="/images/confirm.png"/>
</form>

Вот мой update.php

require('conn.php');
require('getfacebookapi.php');
$userid = idx($facebook->api('/me/'), 'id', string);
$username=$_POST['username'];
$pszz = "UPDATE particular
SET name=$username
WHERE id=$userid";
  if(preg_match("/^[a-zA-Z]+$/", $username)) {       
    pg_query($conn, $pszz);}

Нет ничего плохого в моем pg_pconnect .. Может кто-нибудь сказать мне, где я ошибся и как исправить эту ошибку? Я новичок в обоих PHP и SQL ... Спасибо!

Ответы [ 3 ]

1 голос
/ 21 марта 2012

Никогда, никогда не создавайте операторы SQL путем конкатенации или интерполяции строк.Используйте параметры связывания ( PDO или не менее pg_query_params).

1 голос
/ 21 марта 2012

Вам нужно поместить кавычки вокруг значений строк, иначе он будет думать, что это столбец.SET name = 'tom' WHERE id = 'someid'

0 голосов
/ 21 марта 2012

name - текстовое поле; вставка в текстовые поля требует одинарных кавычек вокруг значения: 'tom'

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...