首页 > 代码库 > php---预编译
php---预编译
当出现当量操作sql语句,比如大量将数据插入数据库中,原来的那种单个执行sql语句或者批量执行sql语句的做法,显然是不可行的,因为无论是单个执行还是批量执行都会连续的发送sql语句向数据库中,数据库接到sql语句对它进行编译处理,从而导致效率底下。
而php中出现的预编译解决了这个问题,他的工作原理是:将sql语句发过去,数据库对这一个sql语句进行预编译处理。之后你只需要将要数据发送到数据库即可。
下面通过一个官方的例子来说明这个情况:
<?php $mysqli = new mysqli(‘localhost‘, ‘my_user‘, ‘my_password‘, ‘world‘); /* check connection */ if (mysqli_connect_errno()) { printf("Connect failed: %s\n", mysqli_connect_error()); exit(); } $stmt = $mysqli->prepare("INSERT INTO CountryLanguage VALUES (?, ?, ?, ?)");
$stmt->bind_param(‘sssd‘, $code, $language, $official, $percent); $code = ‘DEU‘; $language = ‘Bavarian‘; $official = "F"; $percent = 11.2; /* execute prepared statement */ $stmt->execute(); printf("%d Row inserted.\n", $stmt->affected_rows); /* close statement and connection */ $stmt->close(); /* Clean up table CountryLanguage */ $mysqli->query("DELETE FROM CountryLanguage WHERE Language=‘Bavarian‘"); printf("%d Row deleted.\n", $mysqli->affected_rows); /* close connection */ $mysqli->close(); ?>
$stmt->bind_param是进行参数绑定。前面的第一个参数指的是所有参数的数据类型。
$stmt->execute();是进行插入操作。
如果需要插入多个数据,只需要操作$stmt->bind_param和$stmt->execute();即可。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。