Mysql 绑定变量
今天去前程无忧(51job)面试。。考官问了个MYsql 绑定变量概念。
因为之前项目没有接触过 再加上对mysql 研究不足直接问住了- - 回来baidu恶补了下
果然是好东西。
绑定变量的可用性还是不容怀疑的,在大型系统上5%的性能提高已经很不错了,加上绑定变量的安全性,可以很好的规范SQL语句的验证,避免自己单独去写验证语句,
推荐使用绑定变量。
<?php $mysqli=new mysqli("localhost", "root", "123321", "test"); $sql1="set @@profiling=1"; $result1=$mysqli->query($sql1); //准备好一条语句放到服务器中,插入语句 $sql="insert into t(name,sex) values (?,?)"; $stmt=$mysqli->prepare($sql); //给占位符号每个?号传值(绑定参数) i d s b $stmt->bind_param("si", $name, $sex); $name="andy"; $sex=0; //执行 $stmt->execute(); $name="mandy"; $sex=1; //执行 $stmt->execute(); $name="michael"; $sex=0; //执行 $stmt->execute(); $name="happy"; $sex=1; //执行 $stmt->execute(); $name="php"; $sex=1; //执行 $stmt->execute(); $name="mysql"; $sex=1; //执行 $stmt->execute(); $name="linux"; $sex=1; //执行 $stmt->execute(); $name="oracle"; $sex=1; //执行 $stmt->execute(); $name="unix"; $sex=1; //执行 $stmt->execute(); $name="cisco"; $sex=1; //执行 $stmt->execute(); $stmt->close(); $sql2="show profiles"; $result2=$mysqli->query($sql2); echo '<table border=1 align="center" width=800>'; while($rows=$result2->fetch_assoc()){ echo '<tr align="center">'; foreach($rows as $value){ echo '<td>' . $value . '</td>'; } echo '</tr>'; $i=0; $i=$i+$rows["Duration"]; } echo '</table>'; echo $i; ?>
<?php $mysqli=new mysqli("localhost", "root", "123321", "test"); $sql1="set @@profiling=1"; $result1=$mysqli->query($sql1); $nobind=array("insert into t(name,sex) values ('andy',0)", "insert into t(name,sex) values ('mandy',1)", "insert into t(name,sex) values ('michael',0)", "insert into t(name,sex) values ('happy',0)", "insert into t(name,sex) values ('php',0)", "insert into t(name,sex) values ('mysql,0)", "insert into t(name,sex) values ('linux',0)", "insert into t(name,sex) values ('oracle',0)", "insert into t(name,sex) values ('cisco',0)", "insert into t(name,sex) values ('unix',0)"); foreach($nobind as $sql){ echo $sql; $result=$mysqli->query($sql); } $sql2="show profiles"; $result2=$mysqli->query($sql2); echo '<table border=1 align="center" width=800>'; while($rows=$result2->fetch_assoc()){ echo '<tr align="center">'; foreach($rows as $value){ echo '<td>' . $value . '</td>'; } echo '</tr>'; $i=0; $i=$i+$rows["Duration"]; } echo '</table>'; echo $i; $mysqli->close(); ?>
本文出自 “fenghao.cn's Soft..”
生命只有一次。