我使用PHP msqli设置了一个包含数据库连接和查询的网站。
现在我意识到准备好的陈述是最佳实践,我正在研究如何实施它们;重写mysqli数据库连接代码以及PDO格式的数据库查询或只使用mysqli预处理语句。
我从PHP API文档中看到,mysqli支持服务器端预处理语句,但客户端预处理语句不支持。何时可以使用客户端准备好的声明?我理解准备语句的唯一目的是查询数据库,因此始终会涉及服务器端语言,因此始终可以使用服务器端预处理语句。
从下面的链接可以看出,下面的预备语句可以与我的mysqli连接一起使用。
http://www.php.net/manual/en/mysqli.quickstart.prepared-statements.php
if (!($stmt = $mysqli->prepare("INSERT INTO test(id) VALUES (?)"))) {
echo "Prepare failed: (" . $mysqli->errno . ") " . $mysqli->error;
}
当我查看PDO文档时:使用id样式占位符而不是?。以下可以与mysqli连接一起使用吗?除了让事情更容易阅读之外还有什么好处?
$stmt = $conn->prepare('SELECT * FROM myTable WHERE id = :id');
$stmt->execute(array('id' => $id));
我应该忘记mysqli并且只是加快PDO的速度吗?
非常感谢任何指导。看看如何处理这个问题。
答案 0 :(得分:3)
这里有几个问题。这是我的简短回答。
使用您喜欢的任何一种,当涉及 mysql数据库时,它们都将以相同的方式为您提供服务。
现在您可以看到PDO具有明显的优势,因为您可以使用相同的代码与不同的数据库进行通信。