PHP中使用参数化查询
来源:互联网 发布:js函数式编程书籍 编辑:程序博客网 时间:2024/05/29 16:11
PHP 中提供了三种访问 MySQL 数据库的扩展,即 mysql,mysqli 和 PDO。它们的区别可以比较如下:
扩展mysqlmysqliPDOPHP 版本2.0+5.0+5.1+生命周期废弃活跃活跃面向对象语法否是是过程式语法是是否服务器端预处理语句否是是客户端预处理语句否否是上面所说的预处理语句就是用于参数化查询的。可以看到,除了旧的 mysql 扩展不支持,mysqli 和 PDO 这两个新扩展都支持参数化查询。PDO 扩展相比 mysqli 扩展的好处是,它是与关系数据库类型无关的,因此很方便切换数据库,比如从 MySQL 切换到 PostgreSQL。
首先我们来看看利用 mysqli 扩展如何使用参数化查询。例如:
$mysqli = new mysqli("localhost","dbusername", "dbpassword", "database"); $username= "somename";$password= "someword"; $query = "SELECT filename, filesize FROM users WHERE (name = ?) and (password = ?)"; $stmt = $mysqli->stmt_init(); if ($stmt->prepare($query)) { $stmt->bind_param("ss",$username, $password); $stmt->execute(); $stmt->bind_result($filename,$filesize); while($stmt->fetch()) { printf ("%s : %d\n",$filename, $filesize); } $stmt->close();} $mysqli->close();
再看看用 PDO 扩展如何使用参数化查询。例如:
$pdo = new PDO("mysql:host=localhost;dbname=database","dbusername", "dbpassword"); $username= "somename";$password= "someword"; $query = "SELECT * FROM users WHERE (name = :username) and (password = :password)"; $statement= $pdo->prepare($query,array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));$statement->bindParam(":username",$username, PDO::PARAM_STR, 10);$statement->bindParam(":password",$password, PDO::PARAM_STR, 12);$statement->execute(); while ($row = $statement->fetch(PDO::FETCH_ASSOC)) { printf ("%s : %d\n",$row["filename"],$row["filesize"]);}$statement->closeCursor(); $pdo = null;
0 0
- PHP中使用参数化查询
- pdo中使用参数化查询sql
- ADO中怎么使用参数化查询
- VBA中使用ADO,参数化查询出现 Automation error
- 使用参数化查询 sql
- mysql sql php 参数化查询
- php 下进行mysql参数化查询
- php 下进行mysql参数化查询
- 解决yii框架中,使用参数化查询时,IN只能查询一个的代替方法
- php中防止SQL注入的最佳解决方法(预备义语句和参数化查询)
- PHP中错误报告值参数及说明的查询备忘
- <转载>C# 中参数化模糊查询
- ASP.NET中参数化查询
- .NET中参数化查询数据库
- 使用SqlCommand参数化查询数据库
- C#下参数化查询使用Demo
- EJB---->使用参数查询
- 在VB2008 速成版中使用参数化SQL查询语句无效
- 截取字符 并智能判断长度是否需要截取
- Sublime 同时打开多个文件夹(项目)
- C++ 面向对象 知识点 小结
- FragmentTabHost的使用
- Java多线程 -- 线程的调度-让步
- PHP中使用参数化查询
- Connecting to the World with Aryaka
- Jsp页面引入天气预报
- 积跬步,聚小流------实例分析jquery开发插件两种方法的区别
- Stern-Brocot树 (生成0-1之间的所有真分数)
- 【数据结构】-冒泡排序法Java实现
- 全面认识UML类图元素
- MySQL索引背后的数据结构及BTree B+Tree算法原理
- 关于内部类