php的mysql\mysqli\PDO(二)mysqli
原文链接:http://www.orlion.ga/1147/
mysqli有面向对象风格和面向过程风格,个人感觉还是用面向对象风格比较好(毕竟是面向对象
)
1、mysqli::_construct()
mysqli::__construct ([ string $host = ini_get("mysqli.default_host") [, string $username = ini_get("mysqli.default_user") [, string $passwd = ini_get("mysqli.default_pw") [, string$dbname = "" [, int $port = ini_get("mysqli.default_port") [, string $socket = ini_get("mysqli.default_socket") ]]]]]] )
mysqli mysqli_connect ([ string $host = ini_get("mysqli.default_host") [, string $username= ini_get("mysqli.default_user") [, string $passwd = ini_get("mysqli.default_pw") [,string $dbname = "" [, int $port = ini_get("mysqli.default_port") [, string $socket = ini_get("mysqli.default_socket") ]]]]]] )
$host、$username、$passwd、$dbname、$port不用多说了,规则与mysql差不多。
2、mysqli::close()
//面向对象风格
bool mysqli::close ( void )
//面向过程风格
bool mysqli_close ( mysqli $link )
成功时返回 TRUE, 或者在失败时返回 FALSE。$link:由mysqli_connect() 或 mysqli_init(void) (该函数提供一个mysqli对象供mysqli_options()和mysqli_real_connect()使用)返回的链接标识。
这个与mysql_close()差别在于mysql_close()可以不提供参数而关闭上一个连接。
3、mysqli::query()
mixed mysqli::query ( string $query [, int $resultmode = MYSQLI_STORE_RESULT ] ) mixed mysqli_query ( mysqli $link , string $query [, int $resultmode = MYSQLI_STORE_RESULT] )
$resultmode有两种取值方式:MYSQLI_USE_RESULT 和MYSQLI_STORE_RESULT(默认值),区别在于MYSQLI_USE_RESULT模式下取结果时每次都要从服务器上取结果而MYSQLI_STORE_RESULT则是将结果一步到位缓存到用户程序空间中。所以当查询结果数据量特别大时用MYSQLI_USE_RESULT,MYSQLI_STORE_RESUL则速度非常快。
返回值:失败时返回 FALSE,通过mysqli_query() 成功执行SELECT, SHOW, DESCRIBE或 EXPLAIN查询会返回一个mysqli_result对象,其他查询则返回TRUE。
4、遍历结果函数
// 面向对象风格
mixed mysqli_result::fetch_array ([ int $resulttype = MYSQLI_BOTH ] )
// 面向过程风格
mixed mysqli_fetch_array ( mysqli_result $result [, int $resulttype = MYSQLI_BOTH ] )
例:
$query = "SELECT Name, CountryCode FROM City ORDER by ID LIMIT 3";
$result = $mysqli->query($query); /* numeric array */
$row = $result->fetch_array(MYSQLI_NUM);
printf ("%s (%s)\n", $row[0], $row[1]); /* associative array */
$row = $result->fetch_array(MYSQLI_ASSOC);
printf ("%s (%s)\n", $row["Name"], $row["CountryCode"]); /* associative and numeric array */
$row = $result->fetch_array(MYSQLI_BOTH);
printf ("%s (%s)\n", $row[0], $row["CountryCode"]);
类似的函数有:mysqli_result::fetch_assoc和mysqli_result::fetch_row、mysqli_result::fetch_object。
5、释放result函数
// 面向对象风格
void mysqli_result::free ( void )
oid mysqli_result::close ( void )
void mysqli_result::free_result ( void )
// 面向过程风格
void mysqli_free_result ( mysqli_result $result )
6、其他函数
mysqli::real_escape_string(string $sql)转义sql。
一次执行多条sql可以用mysqli对象的multi_query()方法:
bool mysqli::multi_query ( string $query )
传递参数时需要把多条SQL命令写在同一个字符串中作为参数传给multi_query(),多个SQL之间使用分号(;)分隔。如果第一条SQL命令在执行时没有出错,这个方法就会返回TRUE,否则将返回FALSE。
因为multi_query参数中每条SQL都可能返回一个结果,所以处理过程就变成了:
if ($mysqli->multi_query($sql)) {
do {
if ($result = $mysqli->store_result()) {
while ($row = $result->fetch_row()) {
foreach ($row as $data) {
var_dump($data);
}
}
$result->close();
}
if ($mysqli->more_results()) {
echo '----------------';
}
} while($mysqli->next_result());
}
php的mysql\mysqli\PDO(二)mysqli的更多相关文章
- SQL注入实验,PHP连接数据库,Mysql查看binlog,PreparedStatement,mysqli, PDO
看到有人说了判断能否sql注入的方法: 简单的在参数后边加一个单引号,就可以快速判断是否可以进行SQL注入,这个百试百灵,如果有漏洞的话,一般会报错. 下面内容参考了这两篇文章 http://blog ...
- MySQL原生API、MySQLi面向过程、MySQLi面向对象、PDO操作MySQL
[转载]http://www.cnblogs.com/52fhy/p/5352304.html 本文将举详细例子向大家展示PHP是如何使用MySQL原生API.MySQLi面向过程.MySQLi面向对 ...
- PDO和MySQLi区别与选择?
当用PHP访问数据库时,除了PHP自带的数据库驱动,我们一般还有两种比较好的选择:PDO和MySQLi.在实际开发过程中要决定选择哪一种首先要对二者有一个比较全面的了解.本文就针对他们的不同点进行分析 ...
- PDO和MySQLi区别和数度;到底用哪个?
当用PHP访问数据库时,除了PHP自带的数据库驱动,我们一般还有两种比较好的选择:PDO和MySQLi.在实际开发过程中要决定选择哪一种首先要对二者有一个比较全面的了解.本文就针对他们的不同点进行分析 ...
- PDO vs. MySQLi 选择哪一个?(PDO vs. MySQLi: Which Should You Use?)-转载
用Php访问数据的时候,你选择MySQLi和PDO,在选择之前,你应该知道些什么呢? 这篇文章将会介绍这两种方式的不同点,数据库的支持.稳定性.性能等问题. 概述 PDO MySQLi Datab ...
- 【小结】有关mysql扩展库和mysqli扩展库的crud操作封装
现阶段php如果要操作mysql数据库 php给我们提供了3套库 1.mysql扩展库 面向过程操作 2.mysqli扩展库 面向对象操作和面向过程操作并存 安全性和效率高于mysql扩展库 ...
- php中数据库连接方式pdo和mysqli对比分析
1)总的比较 PDO MySQLi 数据库支持 12种不同的数据库支持 支持MySQL API OOP OOP + 过程 Connection Easy Easy 命名参数 支持 不支持 对象映射 ...
- PDO和mysqli对比
PHP中,如何选择PDO和mysqli呢?本文做个简单的比较 1)总的比较 PDO MYSQLI 数据库支持 12种不同的数据库支持 支持MYSQL API OOP OOP和过程 命名参数 支持 ...
- PHP 操作MySQL时mysql_connect( )和Mysqli( )的两种报错机制
刚开始使用PHP连接MySQL数据库的时候,如果数据库连接不成功或者,对MySQL数据库进行增删改查等操作的时候,SQL语句存在错误,而在执行PHP文件的时候,浏览器并不会抛出错误的原因,一般是空白显 ...
随机推荐
- Oracle Database 创建HR模式
其实Oracle是自带演示模式的,我还一直在跪舔外面的培训机构的sql文件 首先以system 用户登陆SQL 输入: alter user hr account unlock identified ...
- servlet中文乱码问题
通过response对象向页面输出内容时遇到的乱码问题可分为两种情况 1.字节流 字节流输出时可以通过设置响应头"Content-Type"的值为"text/html;c ...
- 谷歌浏览器如何查看或获取Cookie字符串
注:此博客仅供非web开发人员查看,以下内容都基于谷歌浏览器. 在网页空白处点击鼠标右键,在弹出菜单中选择[审查元素],可以看到网页下方出现审查元素相关界面. 在审查元素相关界面,点击[Network ...
- 踏上Salesforce的学习之路(一)
相信通过前面的学习,大家已经拥有了一个属于自己的Salesforce开发者账号,下面,我们将用这个账号正式踏上Salesforce的学习之路. 首先,点击网址:https://developer.sa ...
- oracle plsql 无法连接 报 ORA-12560: TNS:protocol adapter error
ORA-12560: TNS:protocol adapter error 添加一个环境变量,名为TNS_ADMIN,值为 tnsnames.ora 文件所在路径.比如我的本机为:D:/instant ...
- 将Web应用发布到tomcat中的三种方法
坑啊,为什么网易的博客不能搬过来!!!我一个一个复制过来容易嘛!!!!原文地址:http://buffalo-l.blog.163.com/blog/static/244954022201539111 ...
- SQL 去掉某字段括号中的值
今天在数据库匹配数据的时候,发现一些数据存在别名,导致我的数据匹配不上.在这里记录分享一下 例如: 李钟硕 (Lee Jong Suk),这里我匹配的是 “李钟硕” 示例1: SELECT rever ...
- 丰富“WinForms” 的一个别样"项目"(学生管理)
一个别样的WinForms项目,他并没多么的新颖,但是它的用处确实有点多,或许会有你需要的地方:如果你对WinForms中那么多控件无法把握,又或者是你根本就不懂,那我觉得你应该好好看看,如果一个人的 ...
- CentOS6.5安装中文输入法
首先进入命令形式的客户端 切换成root用户,输入命令"su root"即可,接着输入 yum install "@Chinese Support" 命令按en ...
- 流行的JavaScript库 ——jQuery
1.为了简化 JavaScript 的开发, 一些 JavsScript 库诞生了. JavaScript 库封装了很多预定义的对象和实用函数.能帮助使用者建立有高难度交互的 Web2.0 特性的富客 ...