pg_query():查询失败:错误:列“x”不存在第2行:SET名称= x

时间:2012-03-21 01:02:40

标签: php postgresql facebook-graph-api

我一直在处理类似facebook应用程序的注册表单,但不是INSERT它UPDATE因为在此之前我已经INSERT

$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 个答案:

答案 0 :(得分:1)

您需要在字符串值周围加上引号,否则会认为它是一列。 SET name ='tom' WHERE id ='someid'

答案 1 :(得分:1)

从不,永远不要通过字符串连接或插值来编写SQL语句。使用绑定参数(PDO或至少pg_query_params)。

答案 2 :(得分:0)

name是一个文本字段;插入文本字段需要围绕值'tom'

的单引号