我不明白这个错误
Erreur desyntaxeprèsde','196,000,000','6357007','6357006','', '先生。 hasan','','',''àlaligne 2
这是我的表创建:
CREATE TABLE `comp` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`COMPANY_NAME` varchar(500) NOT NULL,
`ACTIVITY` text NOT NULL,
`CITY` varchar(150) NOT NULL,
`NUM_COMPANY_FOLLOW` int(11) DEFAULT NULL,
`NUM_BRANCH` int(11) DEFAULT NULL,
`ASSETS` text,
`PHONE1` varchar(100) NOT NULL,
`PHONE2` varchar(100) DEFAULT NULL,
`E_MAIL` varchar(250) DEFAULT NULL,
`DIRECTOR_NAME` varchar(500) NOT NULL,
`COMPANY_SITE` varchar(250) DEFAULT NULL,
`COMPANY_ADDRESS` text,
`HEAD_LOCATION` varchar(100) DEFAULT NULL,
`HEAD_DIRECTORS_NAME` text NOT NULL,
`VICE_HEAD_NAME` varchar(500) NOT NULL,
`BOARD_MEMBER` text,
`BRIEF_DESC` text,
`EVALUE` varchar(250) DEFAULT NULL,
`NOTES` text,
`USERID_ADD` int(11) DEFAULT NULL,
`IP_ADD` varchar(15) DEFAULT NULL,
`DATE_ADD` int(11) DEFAULT NULL,
`USERID_EDIT` int(11) DEFAULT NULL,
`IP_EDIT` varchar(15) DEFAULT NULL,
`DATE_EDIT` int(11) DEFAULT NULL,
PRIMARY KEY (`ID`)
) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=cp1256
这是我的代码:
$sql = "INSERT INTO comp (ID, COMPANY_NAME, ACTIVITY, CITY, NUM_COMPANY_FOLLOW, NUM_BRANCH, ASSETS, PHONE1, PHONE2, E_MAIL, DIRECTOR_NAME, COMPANY_SITE, COMPANY_ADDRESS, HEAD_LOCATION, HEAD_DIRECTORS_NAME, VICE_HEAD_NAME,BOARD_MEMBER, BRIEF_DESC, EVALUE, NOTES, USERID_ADD, IP_ADD, DATE_ADD)
VALUES (NULL, '$COMPANY_NAME', '$ACTIVITY', '$CITY', $NUM_COMPANY_FOLLOW, $NUM_BRANCH, '$ASSETS', '$PHONE1', '$PHONE2',
'$E_MAIL', '$DIRECTOR_NAME', '$COMPANY_SITE', '$COMPANY_ADDRESS', '$HEAD_LOCATION', '$HEAD_DIRECTORS_NAME', '$VICE_HEAD_NAME',
'$ALL_BOARD_MEMBER', '$BRIEF_DESC', '$EVALUE', '$NOTES', $this_userID, '$IP_ADD', $DATE_ADD)";
$result = $db->Execute($sql);
echo mysql_error();
print sql:
INSERT INTO comp
(
ID,
COMPANY_NAME,
ACTIVITY,
CITY,
NUM_COMPANY_FOLLOW,
NUM_BRANCH,
ASSETS,
PHONE1,
PHONE2,
E_MAIL,
DIRECTOR_NAME,
COMPANY_SITE,
COMPANY_ADDRESS,
HEAD_LOCATION,
HEAD_DIRECTORS_NAME,
VICE_HEAD_NAME,
BOARD_MEMBER,
BRIEF_DESC,
EVALUE,
NOTES,
USERID_ADD,
IP_ADD,
DATE_ADD
)
VALUES
(
NULL,
'ANAAM',
'hello1',
'jeddah',
,
,
'',
'6357007',
'6357006',
'',
'mr mohammed',
'',
'',
'',
'mr adnan',
'mr naser',
'',
'',
'',
'',
1,
'127.0.0.1',
1415180296
)
答案 0 :(得分:1)
看起来依赖于数据,修复代码的最佳方法是使用dprepared语句重写语句。这也可以避免SQL注入的漏洞。看看这个问题的答案:How can I prevent SQL injection in PHP?
答案 1 :(得分:1)
如果查看查询的值部分:
(NULL, 'ANAAM', 'hello1', 'jeddah', , , '', '6357007', '6357006', '', 'mr mohammed', '', '', '', 'mr adnan', 'mr naser', '', '', '', '', 1, '127.0.0.1', 1415180296)
您会看到, , ,
,因为数据为空,会产生错误。因此,在数字值周围加上括号,就像使用ascii值一样。或者使用默认值(0?)。
此外,删除sql-query中的ID
值,它会自动递增。
编辑代码:
$sql = "INSERT INTO comp (COMPANY_NAME, ACTIVITY, CITY, NUM_COMPANY_FOLLOW, NUM_BRANCH, ASSETS, PHONE1, PHONE2, E_MAIL, DIRECTOR_NAME, COMPANY_SITE, COMPANY_ADDRESS, HEAD_LOCATION, HEAD_DIRECTORS_NAME, VICE_HEAD_NAME,BOARD_MEMBER, BRIEF_DESC, EVALUE, NOTES, USERID_ADD, IP_ADD, DATE_ADD)
VALUES ('$COMPANY_NAME', '$ACTIVITY', '$CITY', '$NUM_COMPANY_FOLLOW', '$NUM_BRANCH', '$ASSETS', '$PHONE1', '$PHONE2',
'$E_MAIL', '$DIRECTOR_NAME', '$COMPANY_SITE', '$COMPANY_ADDRESS', '$HEAD_LOCATION', '$HEAD_DIRECTORS_NAME', '$VICE_HEAD_NAME',
'$ALL_BOARD_MEMBER', '$BRIEF_DESC', '$EVALUE', '$NOTES', '$this_userID', '$IP_ADD', '$DATE_ADD')";
$result = $db->Execute($sql);
echo mysql_error();
答案 2 :(得分:0)
这意味着第2行' , '196,000,000', '6357007', '6357006', '', 'mr. hasan', '', '', ''
附近的语法错误。换句话说,它是SQL错误
这是因为您的查询中有简要说明。变量的值肯定包含坏字符。如果你有像撇号这样的东西,那么一定要逃避字符串......
希望这有帮助! :d
答案 3 :(得分:0)
我们肯定需要更多的代码,比如$ sql的回声。
但我在声明中看到了一个额外的错误。 您将ID定义为NOT NULL,自动增量和主键。在查询中,为id设置NULL。这将返回错误。
从语句中删除“ID”列。