2017-09-21 155 views
-2

MySQLi的預處理語句錯誤插入mysqli的預處理語句不工作

$conn = new mysqli($servername, $username, $password, $dbname); 
$stmt = $conn->prepare("INSERT INTO users (firstname, lastname, email,password) VALUES (?, ?, ? ,?)"); 
$stmt->bind_param("ssss",$firstname,$lastname,$email,$pass); //<-- return 500 status 

// // set parameters and execute 
$firstname = "John"; 
$lastname = "Doe"; 
$email = "[email protected]"; 
$pass = "Doe"; 

$stmt->execute(); 
+2

您設置的參數綁定後,他們????該如何工作? –

+0

而且你爲什麼要綁定5個參數而不是4個? – ElChupacabra

+1

@ElChupacabra你在哪裏看到5? –

回答

0

我喜歡使用佔位符,不妨一試!

$sql ="INSERT INTO users (firstname, lastname, email,password) 
VALUES (:first, :last, :email , :pass)"; 

$stmt = $conn->prepare($sql); 

$stmt->bindValue('first', $firstName); 
$stmt->bindValue('last', $lastName); 
$stmt->bindValue('email', $email); 
$stmt->bindValue('pass', $password); 

$stmt->execute(); 
+0

首先,您沒有告訴OP將其「連接」更改爲PDO,因此他們可能不知道或不知道該怎麼做。第二;雖然這可能對他們有用,但它並不是首先解釋問題。 –

+0

@delboy你發佈PDO與準備好的陳述,但我正在使用MySQLi與準備的語句,哪一個更喜歡我的情況下 – murugesh

+0

弗雷德,公平點 – delboy1978uk

相關問題