我不理解这个错误
语法错误,"196000000","6357007","6.357006",","。有一个',','','àla ligne 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();
打印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
)
如果您查看查询的值部分:
(NULL, 'ANAAM', 'hello1', 'jeddah', , , '', '6357007', '6357006', '', 'mr mohammed', '', '', '', 'mr adnan', 'mr naser', '', '', '', '', 1, '127.0.0.1', 1415180296)
您将看到, , ,
,它会在数据为空时创建一个错误。所以把括号放在数值周围,就像用ascii值一样。或者使用默认值(0?)。
此外,在sql查询中删除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();
看起来依赖于数据,修复代码的最佳方法是使用数据准备语句重写语句。这也可以避免SQL注入的漏洞。看看这个问题的答案:如何防止PHP中的SQL注入?
这意味着第2行' , '196,000,000', '6357007', '6357006', '', 'mr. hasan', '', '', ''
附近的语法有错误。换句话说,这是一个SQL错误
这是因为您的查询中有简短的描述。变量的值肯定包含不正确的字符。如果你有撇号之类的东西,一定要转义字符串。。。
希望这能有所帮助!:D
我们肯定需要更多的代码,比如$sql的echo。
但我在声明中看到了另一个错误。您将ID定义为NOT NULL、自动递增和主键。在查询中,您将id设置为NULL。这将返回一个错误。
从语句中删除列"ID"。