2011-06-16 91 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