php的mysqlmysqliPDOmysqli
Posted Orlion
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php的mysqlmysqliPDOmysqli相关的知识,希望对你有一定的参考价值。
原文链接: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的mysqlmysqliPDOmysqli的主要内容,如果未能解决你的问题,请参考以下文章
解决 PHP Interpreter is not configured Please configure PHP Interpreter to use built-in web server(示例代
Centos7-yum部署配置LAMP-之LAMP及php-fpm实现反代动态资源
我在php表单有选择时间的select 我想用javascript验证 闰年、大月、小月的问题,下面是我的javascript 代
session.upload_progress。。 伪造session , +++ 反序列化 ++++ 文件包含,, +++ 临时文件包含 ++ PHP7 的 segment fault(代