postgresql和插入变量
我离得很近,但被卡住了。我从drupal中提取用户名并将其存储在名为$username的变量中,我想将其存储在名为username的列中。然而,下面的代码抛出了一个错误postgresql和插入变量,sql,postgresql,insert,postgresql-9.2,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[even
$sql = "INSERT INTO sheet_tbl (site_id, user_id, eventdate, eventtime, username) VALUES ('$_POST[site_id]','$_POST[user_id]','$_POST[eventdate]','$_POST[eventtime]',$username)";
错误
我使用以下方法提取用户名:
User Name: <?php
global $user;
echo $user->name;
$username = $user->name;
?>
用户名:
如果我回显这个变量,我会得到结果=admin如果不查看
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')";
编辑:更正语法您没有将
用户名
放在引号中。替换
,$username)";
与
顺便说一句,您不应该在SQL语句中输入未经转换的用户输入。这可能导致SQL注入。请参见Try
echo$sql代码>在分配字符串并让我们知道outputRecord addedINSERT到sheet_tbl(站点id、用户id、事件日期、事件时间、用户名)值('14'、'1'、'29/06/2012'、'20:44')之后,这是我问题@OscarPérezSee我的答案中代码的结果。问题是,)
,因为您的用户名变量为空警告:pg_query()[function.pg query]:查询失败:错误:数组值必须以“{”开头或第33行/var/www/html/drupal1/includes/common.inc(1743):eval()”d代码中字符150处的维度信息。我刚刚尝试了这个$sql=“INSERT INTO sheet\u tbl(site_id,user_id,eventdate,eventtime,username)值(“$”POST[site_id],“$”POST[user_id],“$”POST[eventdate],“$”POST[eventtime],“username=”)“我更改了语法…你能试试吗?警告:pg_query()[function.pg query]:查询失败:错误:列“username”在第31行代码/var/www/html/drupal1/includes/common.inc(1743):eval()中的字符113处不存在。尽管我知道该列确实存在,因为我可以看到它
,$username)";
,'$username')";