#1 ipengxh
$email_address_db = spClass("email_address");$email_arr = explode(';', $email_address); $email_number = count($email_arr);for ($i = 0; $i<$email_number; $i++){ $email = $email_arr[$i]; $email_address_insert = array( 'address' => $email, 'group' => $group_id, ); $email_address_db -> create($email_address_insert); echo $i." is done, ".$email." is inserted!
";}$this -> message = "Success! You have inserted ".$i." email addresses.";$this -> display(HTML_PATH."/success.html");
这里的email_address数据库中字段address是char(50), group是int(8),在进行create操作时,报错
INSERT INTO email_address (address,group) VALUES ('test@test.com','1')
执行错误: 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 ('test@test.com','1')' at line 1将上面错误的SQL语句丢到phpmyadmin中执行,同样报错,改成:
INSERT INTO email_address (address, `group`) VALUES ('test@test.com','1')正确执行,也就是说,原因是group字段必须在插入数据库时,用``包含,这个问题该如何解决?
2011-08-24 16:32:06
#2 ipengxh
上面的排版不好,重新发一下。
$email_address_db = spClass("email_address");$email_arr = explode(';', $email_address); $email_number = count($email_arr);for ($i = 0; $i<$email_number; $i++){ $email = $email_arr[$i]; $email_address_insert = array( 'address' => $email, 'group' => $group_id, ); $email_address_db -> create($email_address_insert); echo $i." is done, ".$email." is inserted!
";}$this -> message = "Success! You have inserted ".$i." email addresses.";$this -> display(HTML_PATH."/success.html");
这里的email_address数据库中字段address是char(50), group是int(8),在进行create操作时,报错:
INSERT INTO email_address (address,group) VALUES ('test@test.com','1')执行错误: 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 ('test@test.com','1')' at line 1
将上面错误的SQL语句丢到phpmyadmin中执行,同样报错,改成:
INSERT INTO email_address (address, `group`) VALUES ('test@test.com','1')
正确执行,也就是说,原因是group字段必须在插入数据库时,用``包含,这个问题该如何解决?
2011-08-24 16:35:20
#4 ipengxh
大牛无处不在啊,谢谢了!已经解决了。
解决办法是把字段group换成其余名字,比如换成email_group,原因是group是MySQL的保留字,如3L@chpu所说。
2011-08-24 16:49:20
#5 ipengxh
大牛无处不在啊,谢谢了!已经解决了。
解决办法是把字段group换成其余名字,比如换成email_group,原因是group是MySQL的保留字,如3L@chpu所说。
2011-08-24 16:49:23
#6 anythink
,用``包含,这个问题该如何解决?
spClass()->create( array('`filed`'=> $var) )
之前我也出过这个问题 百思不得起解。
建议speed 把所有的字段都带上 `` ,这样保留字段也可以使用了.....
2011-09-07 18:45:37
#7 jake
SQL语法中是建议不用保留字的,那我觉得还是SQL本身的建议更需要遵守。所以sp也遵守SQL本身的建议。
2011-09-07 22:32:35