2011-06-16 38 views
1

我是准备好的语句的新手,并试图让一些简单的工作。PHP:准备好的语句(新手)出现此错误

这是我的数据库表:

`unblocker_users` (
    `uno` bigint(20) NOT NULL AUTO_INCREMENT, 
    `user_email` varchar(210) DEFAULT NULL, 
    `pw_hash` varchar(30) DEFAULT NULL, 
    `email_confirmed` tinyint(4) DEFAULT NULL, 
    `total_requests` bigint(20) DEFAULT NULL, 
    `today_date` date DEFAULT NULL, 
    `accessed_today` tinyint(4) DEFAULT NULL,) 

,这是我的函数中插入一些测试数据

function add_new_user($e_mail1) 
    { 
    require_once "db.php"; 
// ####### Below line is giving an error ######## 
$stmt = $mysqli->prepare("INSERT INTO unblocker_users VALUES ("",?, ?,0,0,?,0)"); 
$stmt->bind_param('sss', $e_mail1, $this->genRandomString(1),$this->today_date()); 

$stmt->execute(); 

$stmt->close(); 
$done = $stmt->affected_rows; 

return $done; 
    } 

正如你可以在上面看到,我都标志着是给我一个行错误。 错误是" Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in..."

我哪里出错了?

回答

4

这条线可能会引起问题

$stmt = $mysqli->prepare("INSERT INTO unblocker_users VALUES ("",?, ?,0,0,?,0)"); 

见您关闭并在值再次打开字符串,改变""''这就是所有我可以从快速浏览。

+0

谢谢!投了! – Ryan 2011-06-16 14:25:38

+0

所有3个答案都是正确的,但你是第一个,所以我选择你的答案作为正确答案。我希望你能和其他人在一起。 – Ryan 2011-06-16 14:30:12

+0

干杯队友。不要忘记接受答案。我会去@KingCrunch - 哈哈,你可以改变接受的答案。 – martynthewolf 2011-06-16 14:30:14

3

你有“带双引号的字符串PHP认为

"INSERT INTO unblocker_users VALUES ("",?, ?,0,0,?,0)"

是2串:

"INSERT INTO unblocker_users VALUES ("

",?, ?,0,0,?,0)"

,但确实不是你想什么与他们做。

变化外引号为单引号,它应该工作:

'INSERT INTO unblocker_users VALUES ("",?, ?,0,0,?,0)'

+0

谢谢!投了! – Ryan 2011-06-16 14:26:16

3
"INSERT INTO unblocker_users VALUES ("",?, ?,0,0,?,0)" 

在PHP中,如果你想在双引号中使用双引号,则必须逃出内的人

"INSERT INTO unblocker_users VALUES (\"\",?, ?,0,0,?,0)" 

或使用单引号作为外...

'INSERT INTO unblocker_users VALUES ("",?, ?,0,0,?,0)' 

...或内报价

"INSERT INTO unblocker_users VALUES ('',?, ?,0,0,?,0)" 

据我所知的MySQL使用单引号反正

+0

哈哈!你们所有3人立即就遇到了问题:) 只是不能击败体验! – Ryan 2011-06-16 14:23:19

+0

尽管新问题,“$完成= $ stmt-> affected_rows;不给我任何东西,但一个错误:(我怎么得到受影响的行或基本确认,如果插入工作?(已投票了所有的答案,谢谢) – Ryan 2011-06-16 14:25:18

+0

通常,PHP解释器会描述发生问题的位置(从'...'中意外的XYZ上方的错误消息中删除的部分)。你可以信任它;) – KingCrunch 2011-06-16 14:25:30