2013-07-22 3 views
0

Я близко, но застрял. Я вытаскиваю имя пользователя из drupal и сохраняю его в переменной с именем $ username, я хочу сохранить это в столбце с именем username. Однако приведенный ниже код подбрасывает ошибкупеременные postgresql и INSERT

 $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; 
?> 

Если я эхо этой переменной я получаю результат = админ

+0

Попробуйте 'эхо $ SQL,' только после присвоения строки и дайте нам знать выход –

+0

Record addedINSERT INTO sheet_tbl (site_id, user_id, EVENTDATE, eventtime, имя пользователя) VALUES ('14', '1',» 29/06/2012 ',' 20:44 ',) – Tom

+0

То есть с результатами кода в моем вопросе @ OscarPérez – Tom

ответ

0

Вы не поставили username в кавычки. Заменить

,$username)"; 

с

,'$username')"; 

И КСТАТИ не следует помещать неэкранированный ввод данных пользователем в операторах SQL. Это может привести к инъекциям SQL. См here

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')"; 

Edit: исправлен синтаксис

+0

warning: pg_query() [function.pg-query]: Ошибка запроса: ERROR: значение массива должно начинаться с «{» или информации о размере на знаке 150 в/var /www/html/drupal1/includes/common.inc(1743): eval() 'd код в строке 33. – Tom

+0

Я просто попробовал это $ 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') "; – Tom

+0

Я изменил синтаксис ... не могли бы вы попробовать? –

Смежные вопросы