2017-09-21 109 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

相关问题