PHP中的prepare准备语句的意义

mysqli和PDO扩展都有prepare这个语法,刚开始以为只是单纯的语法,没想到,还是有实际意义的:

  “每次发送查询语句给MySQL服务时,都必须解析该查询的语法,确保结构正确并能够执行。这是这个过程中必要的步骤,但也确实带来了一些开销。做一次是必要的,但是如果反复地执行相同的查询,批量插入多行时只改变列值会怎么样呢?准备语句会在服务器上缓存查询的语法和执行过程,而只在服务器和客户端之间传输有变化的列值,以此来消除这些额外的开销

----《PHP与MySQL程序设计(第4版)》章节31.2.7《准备语句介绍》摘录

示例代码:

$dbh = new PDO("mysql:host=localhost;dbname=db", "user", "pwd");

$query = "insert into products (sku,title)values(:sku ,:title)";

//准备语句
$stmt = $dbh->prepare($query);

//执行查询
$stmt->execute(array(':sku' => 'MN873213', ':title' => 'Minty Mouthwash'));

//再次执行
$stmt->execute(array(':sku' => 'AB223234', ':title' => 'Lovable Lipstick'));

 

posted @ 2018-05-22 10:22  jiafeng  阅读(627)  评论(0编辑  收藏  举报