现在的位置: 主页 > 公司荣誉 > 文章正文

7天入门php-MySQL数据库

作者:陕西芙爱尔婚庆礼仪服务有限公司 来源:www.fair521.com 未知发布时间:2017-09-10 10:01:58
7天入门php-MySQL数据库

一、PHP 对MySQL的基本操作

因为MySQL 扩展函数库不建议使用,取而代之的是MySQLi (加强的MySQL 库),所以下面的是MySQLi 库的基础知识。

1、连接数据库

面向对象方式:

$mysqli = new mysqli("localhost", "user", "password", "database",port); 面向过程方式: $mysqli = mysqli("localhost", "user", "password", "database",port); 说明:

因为MySQL 服务器支持从不同转换层进行连接的使用,所以可通过TCP/IP、Unix domain sockets (或windows命名的管道(pipes))连接MySQL数据库。使用localhost实际是使用Unix domain sockets方式,而要使用TCP/IP 方式必须将localhost换成127.0.0.1(若连接本地数据库)。

PHP INI 配置:

mysqli.default_host= mysqli.default_user= mysqli.default_pw= mysqli.default_port=3306 mysqli.default_socket= 默认端口为3306,所以创建连接时不必指定端口!而其它几个默认值都没有指定,因为考虑了安全因素,所以一般都在代码中动态设置。
示例:(对象方式) host_info; } else echo "连接失败".$conn->connect_error; ?> 说明:连接成功时输出:连接成功:localhost via TCP/IP 。(与文档描述不太相符,文档中为localhost via Unix socket)

2、执行语句

说明:

mysqli_开头的函数为面向过程风格,如mysqli_query(),而对应的面对对象风格不包含mysqli_,对应为query()。

常用函数:

1)、mysqli_query([mysqli $link,]string $query [, int $resultmode = MYSQLI_STORE_RESULT ]):直接返回结果集。有$link则为过程化风格。

最普通和常用的函数,可执行任何SQL 语句,执行DDL 语句时返回boolean表明是否操作成功,执行SELECT 语句返回结果集。

特点:

——>能用缓冲的结果集(Buffered result sets)组合执行语句。所谓缓冲的结果集,即语句执行后结果能立即被客户端缓存或被读取,而组合执行即是执行语句只进行一次调用。(个人理解,此函数尽可能少的请求服务器,从而使用缓存将执行语句的方式,一次性执行多条SQL 语句)

——>此函数相当于在mysqli_store_result()函数后执行mysqli_rea_query()。

2)、mysqli_real_query([mysqli $link ,] string $query) :执行后调用mysqli_use_result()获取结果集。$link同样为过程化时的连接句柄。

执行查询语句。

特点:

——>使用未缓存的结果集,真正的查询。适用于客户端资源短缺,或没必要尽可能早地释放服务器资源以保持服务器的较低负载的情况下。

——>在所有记录(rows)被读取之前,不能通过结果集进行滚动(scrolling)。

示例:对象风格

3)、mysqli_multi_query([$link,] $query) :若有多个查询语句,则可取多个结果集。有$link时为过程化风格,$link指连接数据库的资源类型。

执行多个SQL 查询语句。执行后通过mysqli_use_result() 或 mysqli_store_result()取第一个查询的结果集;对于后面的结果集,可通过mysqli_more_results() 与 mysqli_next_result()判断再取回结果集。

示例:对象风格(函数调用与过程化风格有区别,如参数个数 ,具体看文档)

$query = "SELECT CURRENT_USER();"; //第一个查询 $query .= "SELECT Name FROM City ORDER BY ID LIMIT 20, 5"; //第二个查询 /* execute multi query */ if ($mysqli->multi_query($query)) { do { /* store first result set */ if ($result = $mysqli->store_result()) { //mysqli_store_result()或mysqli_use_result()获取结果集 while ($row = $result->fetch_row()) { //通过mysqli_fetch_row()循环获取每条记录 printf("%s\n", $row[0]); } $result->free(); //释放当前结果集 } /* print divider */ if ($mysqli->more_results()) { //mysqli_more_result()判断 printf("-----------------\n"); } } while ($mysqli->next_result()); //应该是更新结果集指针,指向下一个结果集 }

上三个函数查询结果值的类型说明:

At the level of the MySQL Client Server Protocol, the command COM_QUERY and the text protocol are used for statement execution. text protocol 用于在服务器端发送上面三个函数的结果前,将其转换成string类型,而客户端不会对接收的结果再转换回数据的原始类型,即接收到的所有值都是PHP string类型。可通过PHP gettype()检查类型。

全部使用示例:

3、其它常用函数与属性

企业建站2800元起,携手武汉肥猫科技,做一个有见地的颜值派!更多优惠请戳:孝感网站建设 http://xiaogan.45qun.com

上一篇:UGC社区类产品系列(三):内容如何流动 下一篇:最后一页