《关于MYSQL预处理技术的一些体会》要点:
本文介绍了关于MYSQL预处理技术的一些体会,希望对您有用。如果有疑问,可以联系我们。
先来看传统的操作数据库的办法.传统的操作数据库办法有两种:
先写一条sql语句,然后通过mysqli->query($sql)去操作数据库(笔者此处使用的是mysqli扩展库).这样操作 并不会有什么大的错误,但是当你要插入上千条上万条数据呢?难道也还是要这样写一 条sql语句然后再操作一下数据库?那有人会说, 好办嘛 ,用mysqli自带的操作多条sql语句的办法,即第二种办法.
mysqli->multi_query($sql),这是操作多条sql语句的办法,如下:
如果你认为这样就可以完全办理问题,那么你就错了,让我们接下来看一看MySQL数据库执行sql语句的原理吧
从上图可以看出,无论我们是发送一条sql语句还是发送多条sql语句,数据库都要对其一一的进行编译,那么当数据达到一定量之后,数据库的开销就必然很大.那怎样办理这个问题?此时就引入了预处理技术的概念.
下面我们来看一段预处置技术的代码:
首先我们来看
$sql = "insert into student_info(name,age,sex,studentNo,grade) values (?,?,?,?,?)";
$mysqli_stmt->execute();这句代码便是将数据传递给数据库了.
使用预处置数据查询数据库
代码如下:
可以看出,查询与插入相比多了
这样一句代码,那么这句代码是什么意思呢?
可以想象,查询数据库的时候,数据库必然会返回一个结果集,那么如果你想取得该结果的一些数据,那么就必需加上这句话.那么,这些参数又是什么意思呢?
看看这句sql语句,你会发现bind_result里面的参数一一对应于sql语句当中你要查询的字段(name,sex,age),当然,bind_result里面的参数可以不与sql语句的字段名字相同,但是我们通常保举这样做.
多的不说,上图:
可以这样理解:$name,$sex,$age是引用传递,他们相当于指针,分别指向成果集的第一行的列地址,每执行一次while语句,指针便向下移动
这样,便可以打印出每一行的数据了 ,成果如下:
同时,那三个封闭别忘记了,重中之重.
《关于MYSQL预处理技术的一些体会》是否对您有启发,欢迎查看更多与《关于MYSQL预处理技术的一些体会》相关教程,学精学透。维易PHP学院为您提供精彩教程。
转载请注明本页网址:
http://www.vephp.com/jiaocheng/7095.html