哪个更快mysqli_prepare或mysqli_query?

时间:2015-06-18 10:13:31

标签: php mysql prepared-statement prepare

更快:

1

$name  = $sql->real_escape_string($_POST['name']);
$age   = $sql->real_escape_string($_POST['age']);
$email = $sql->real_escape_string($_POST['email']);

$query = "INSERT INTO `tablename` VALUES ('$name','$age','$email');";

$sql->query($query) or die($query.'<br />'.$sql->error);

2

 $name  = $_POST['name'];
    $age   = $_POST['age'];
    $email = $_POST['email'];

    $query = $sql->prepare("INSERT INTO `tablename` VALUES ('?','?','?');");

    $query->bind_param("sis",$name,$age,$email);
    $query->execute();

当使用prepare和bind param时,你向mysql数据库发送更多的请求,这需要更多的时间,因为有更多的请求,每个请求都有它的连接时间。

如果mysql数据库不在localhost服务器中,则为true。

这句话是否正确? 感谢

1 个答案:

答案 0 :(得分:0)

在sql中使用预准备语句的实际目的是降低处理查询的成本;不要将数据与查询分开。这就是它现在如何被使用,而不是如何被设计为首先使用它。使用SQL,您可以通过使用预准备语句来降低执行多个类似查询的成本。这样做会减少解析,验证并且通常会预先为所述查询生成执行计划。这就是为什么他们在循环中运行得比他们的IMMEDIATE Query堂兄弟那样快。不要以为只是因为某人使用php并且这种方式这种方式并不意味着它是方式,或者只是这样做的方式。虽然它比一般查询更安全,但它们在他们可以做的事情上更受限制,或者更准确地说是如何去做。

我认为以下参考链接对您有用: http://code.tutsplus.com/tutorials/pdo-vs-mysqli-which-should-you-use--net-24059