根据我发现和看到的一切,这似乎是正确的。当我打印$查询时,结果如下:PDO/PHP - bindValue似乎没有工作
“INSERT INTO customers(FirstName,MiddleInit,LastName,Address,City,State,Zip,Email,Gender)VALUES(?,?,?,? ,?,?,?,?)“
参数应该用bindValues()中的变量填充。因此,例如...
INSERT INTO customers(FirstName,MiddleInit,LastName,Address,City,State,Zip,Email,Gender)VALUES(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());
不知道,没有足够的代码提供了解决方案。无论您是使用PDO作为连接的API,并且您的变量确实是正确的。检查错误。 –
这不是如何准备报表工作。该语句作为一个带有占位符的查询(就像带参数的函数一样),当在数据库上执行时,绑定的参数被注入(就像调用函数一样) – Phil
我投票结束这个问题作为离题,因为它是关于对准备好的陈述的误解 – Phil