根据我发现和看到的一切,这似乎是正确的。当我打印$ query时,结果如下:
" INSERT INTO客户(FirstName,MiddleInit,LastName,地址,城市,州,邮编,电子邮件,性别)价值观(?,?,?,?,?,?,?,?, ?)"
参数应该用bindValues()中的变量填充。所以,例如......
INSERT INTO客户(FirstName,MiddleInit,LastName,地址,城市,州,邮编,电子邮件,性别)价值(Bill,A,Hopkins,123 Ave,....)
我想坚持使用这种方法 - 它被try / catch块包围。从打印查询变量中我可以看出问题所在。
我错过了什么?我真的很感谢你的期待!
$query = 'INSERT INTO customers (FirstName, MiddleInit, LastName, Address, City, State, Zip, Email, Gender) VALUES (?,?,?,?,?,?,?,?,?)';
echo $query;
$statement = $db->prepare($query);
$statement->bindValue(1, $firstName);
$statement->bindValue(2, $middle);
$statement->bindValue(3, $lastName);
$statement->bindValue(4, $address);
$statement->bindValue(5, $city);
$statement->bindValue(6, $state);
$statement->bindValue(7, $zip);
$statement->bindValue(8, $email);
$statement->bindValue(9, $gender);
$success = ($statement->execute());
答案 0 :(得分:0)
我们需要更多代码来考虑错误,但您可以使用预先准备好的语句来尝试:
$query = 'INSERT INTO customers (FirstName, MiddleInit, LastName, Address, City, State, Zip, Email, Gender) VALUES (:firstName, :middle, :lastName, :address, :city, :state, :zip, :email, :gender)';
$statement = $db->prepare($sql);
$statement->execute(array(':firstName'=>$firstName, ':middle'=>$middle, ':lastName'=>$lastName, ':address'=>$address, ':city'=>$city, ':state'=>$state, ':zip'=>$zip, ':email'=>$email, ':gender'=>$gender));