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'));