我一直得到“你的SQL语法有错误”,如果直接运行,SQL就可以工作

时间:2014-03-16 19:25:54

标签: php mysql sql

我不断收到“你的SQL语法错误”,如果查询运行正常,则会发生错误。

代码:

function CreateUser(){
$token = md5(uniqid(rand(),true));
$query = "USE carshop;
INSERT IGNORE INTO users VALUES(
    '',
    '$GLOBALS[nume]',
    '$GLOBALS[pren]',
    '$GLOBALS[mail]',
    '$GLOBALS[adresa]',
    '$GLOBALS[parola]',
    '$token',
    '0',
    '0',
    '');";
echo $query;
mysql_query($query)or die("Error: ".mysql_error());
break;

}

回声查询:INSERT IGNORE INTO用户VALUES('','test1','test2','dididid @ dd.com','dsads llaowd sda','6ccee2f5b01591f6644036c1114b5b4f','8b3cc272280f13d765b271e203124308','0',' 0','');

数据库结构是:

CREATE TABLE users (
`ID` INT(11) NOT NULL AUTO_INCREMENT,
`nume` CHAR(20) NOT NULL DEFAULT '0' COLLATE 'utf8_unicode_ci',
`prenume` CHAR(20) NOT NULL COLLATE 'utf8_unicode_ci',
`mail` VARCHAR(30) NOT NULL DEFAULT '0' COLLATE 'utf8_unicode_ci',
`adresa` TEXT NOT NULL DEFAULT '0' COLLATE 'utf8_unicode_ci',
`parola` VARCHAR(100) NOT NULL DEFAULT '0' COLLATE 'utf8_unicode_ci',
`token` VARCHAR(100) NOT NULL DEFAULT '0' COLLATE 'utf8_unicode_ci',
`isVerified` INT(1) NOT NULL DEFAULT '0',
`isOnline` INT(1) NOT NULL DEFAULT '0',
`dateCreated` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

谢谢,对不起,如果我有任何新手的错误,我是新来的

2 个答案:

答案 0 :(得分:5)

您无法使用mysql_* API运行多个语句。您需要将它们分解为多个语句,或者更好的是,使用mysqli_* API。

{@ 1}} API已弃用,因此您无论如何也不应该使用它。使用mysql_* API,您可以使用mysqli_multi_query()一次运行多个语句。

答案 1 :(得分:0)

我建议做这样的事情(如果你真的需要指定数据库):

function CreateUser(){
$token = md5(uniqid(rand(),true));
$query = "INSERT IGNORE INTO carshop.users VALUES(
    '',
    '$GLOBALS[nume]',
    '$GLOBALS[pren]',
    '$GLOBALS[mail]',
    '$GLOBALS[adresa]',
    '$GLOBALS[parola]',
    '$token',
    '0',
    '0',
    '');";
echo $query;
mysql_query($query)or die("Error: ".mysql_error());
break;
}