postgresql和INSERT变量

时间:2013-07-22 11:17:12

标签: sql postgresql insert postgresql-9.2

我很亲密,但卡住了。我从drupal中提取用户名并将其存储在名为$ username的变量中,我想将其存储在名为username的列中。但是,以下代码会引发错误

        $sql = "INSERT INTO sheet_tbl (site_id, user_id, eventdate, eventtime, username) VALUES ('$_POST[site_id]','$_POST[user_id]','$_POST[eventdate]','$_POST[eventtime]',$username)";

错误

warning: pg_query() [function.pg-query]: Query failed: ERROR: syntax error at or near ")" at character 112 in /var/www/html/drupal1/includes/common.inc(1743) : eval()'d code on line 30.

我使用以下方式提取用户名:

 User Name: <?php 
 global $user;
 echo $user->name;
 $username = $user->name;
 ?>

如果我回应这个变量,我得到结果= admin

2 个答案:

答案 0 :(得分:0)

我不确定没有查看echo $sql;的输出,但我想问题是你访问$POST数组的方式。

试试这个:

    $sql = "INSERT INTO sheet_tbl (site_id, user_id, eventdate, eventtime, \"username\")"
          ." VALUES ('$_POST[site_id]', "
          ."         '$_POST[user_id]',"
          ."         '$_POST[eventdate]',"
          ."         '$_POST[eventtime]',"
          ."          '$username')";

编辑:更正语法

答案 1 :(得分:0)

您没有将username放在引号中。取代

,$username)";

,'$username')";

顺便说一下,你不应该在你的SQL语句中放入未转义的用户输入。这可能会导致SQL注入。见here