将数据插入表中时Drupal DB错误:转义引号?

问题描述

| 我有一个特别棘手的问题要解决,但尚未解决。 我已经在drupal问题队列中发布了有关此内容的信息,但是我可能会被忽略。这是Drupal发行号1061458的链接。 这是在Drupal 6上使用Apache MysqLPHP在我的centos框中完成的。 我试图每次有人到达页面时进行插入,所以我在其中放了一个愚蠢的空白页面,里面有创建内容,然后我将动态块放在那里,以便从模块中运行我的代码。我使该块调用一个函数,该函数获取用户的IP地址并将其与标志一起存储在db中,直到该人注册为止。 这是生成错误
You have an error in your sql Syntax; check the manual that corresponds to your MysqL server version for the right Syntax to use near 'group) VALUES ('','')' at line 1 query: INSERT INTO group_landing_connection (ipaddress,group) VALUES ('','') in /var/www/html/sites/all/modules/MODULE/MODULE.module on line 1130.
使用这些确切的转义引号,然后这是块函数中有问题的代码
$sql = \"INSERT INTO {group_landing_connection} (ipaddress,group) VALUES (\'%s\',\'%d\')\";
db_query($sql,$ip,$group);
在上面设置IP和组的位置。这是模块安装文件中的数据库格式
  $schema[\'group_landing_connection\'] = array(
\'fields\' => array(
  \'dbid\' => array(\'type\' => \'serial\',\'unsigned\' => TRUE,\'not null\' => TRUE,),\'ipaddress\' => array(\'type\' => \'varchar\',\'length\' => \'30\',\'group\' => array(\'type\' => \'varchar\',\'length\' => \'10\',\'primary key\' => array(\'dbid\'),
); 我尝试了将dbid设置为null并设置自动递增值的方法。运行cron并刷新缓存。块缓存已关闭。我什至尝试使用%b进行二进制数据输入,但是不行。我尝试删除替换值和硬编码数字,但不走运。我尝试在有效的数据库调用之后立即执行此调用,但该调用仍然失败,因此我不认为这是该块的错误。我什至尝试使用此代码进行更安全的db_write_record调用
$data = array(
  \'ipaddress\' => \'3\',\'group\' => \'3\',);
drupal_write_record(\'np_group_landing_connection\',$data);
但是,任何人有任何想法都没有运气吗?     

解决方法

组是保留字,重命名您的列 http://dev.mysql.com/doc/refman/5.1/en/reserved-words.html     

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...