php链接mysql数据库
2015-12-27 16:22
555 查看
php连接数据库有三种方法,刚刚发现通过mysql_connect,mysql_query连接已被废弃,而现在推荐的是通过“面向对象方法”和“PDO方法”连接数据库。
而我在使用面向对象的方法连接时,查询出来的结果中文无法显示,网上给的大部分解决办法都是针对老式连接方法的解决办法,不过最终还是找到了解决办法。
大体的连接方法如下:
其中查询结果是一个对象 $result,因为是对象,所以没法直接打印使用。
我们可以调用该对象的方法来将其转换为数组等表现形式。
比较常用的有fetch_row,fetch_array,fetch_all
一、fetch_row()
$row = $result->fetch_row()
此方法得到的$row是一个一维数组,每次只会得到一组“记录”,即:如果你查出来的应该是10组记录,而他每次只会返回给你一组记录。
需要用一个while循环将每次查询出来的一维数组再装到一个一维数组中,形成一个二维数组(如装有10组记录的二维数组)。
这种方法的特点是:查询出来的一维数组内的键名默认为从0开始的数字
二、fetch_array()
$row = $result->fetch_array()
此方法总体与fetch_row相同,他们两的不同之处在于,fetch_array()查出来的一维数组中里面每一列有两个键值名,原表的列名会自动成为各个键值名,而也会拥有从0开始自动排序的键值名
三、fetch_all()
$rows = $result ->fetch_all();
此方法得出来得$rows为一个二维数组,其实“就相当于fetch_row方法已经循环完存完一维数组的二维数组$rows”,可以直接打印。
而我在使用面向对象的方法连接时,查询出来的结果中文无法显示,网上给的大部分解决办法都是针对老式连接方法的解决办法,不过最终还是找到了解决办法。
大体的连接方法如下:
<?php header("Content-type: text/html; charset=utf-8"); $mysql_url="localhost";//数据库服务器的地址 $mysql_username="";//数据库用户名的名称 $mysql_password="";//连接数据库的密码 $mysql_database="";//数据库的名字 $db=new mysqli($mysql_url,$mysql_username,$mysql_password,$mysql_database); if(mysqli_connect_error()){//数据库连接失败时提示 echo 'Could not connect to database.'; exit; } mysqli_query($db,'set names utf8');//给查询结果设置编码 $result=$db->query("SELECT * FROM yc_brand");//此处sql语句表面不能加单引号或双引号 $all=$result->fetch_all();//获取结果集中的所有数据 var_dump($all); ?>
其中查询结果是一个对象 $result,因为是对象,所以没法直接打印使用。
我们可以调用该对象的方法来将其转换为数组等表现形式。
比较常用的有fetch_row,fetch_array,fetch_all
一、fetch_row()
$row = $result->fetch_row()
此方法得到的$row是一个一维数组,每次只会得到一组“记录”,即:如果你查出来的应该是10组记录,而他每次只会返回给你一组记录。
需要用一个while循环将每次查询出来的一维数组再装到一个一维数组中,形成一个二维数组(如装有10组记录的二维数组)。
这种方法的特点是:查询出来的一维数组内的键名默认为从0开始的数字
$rows = array();//建立一个数组用来装查询结果 while($row = $result->fetch_row()){//只要能查到结果就执行 $rows[] = $row;//将每次查的结果装到之前定义的数组 } var_dump($rows);
二、fetch_array()
$row = $result->fetch_array()
此方法总体与fetch_row相同,他们两的不同之处在于,fetch_array()查出来的一维数组中里面每一列有两个键值名,原表的列名会自动成为各个键值名,而也会拥有从0开始自动排序的键值名
三、fetch_all()
$rows = $result ->fetch_all();
此方法得出来得$rows为一个二维数组,其实“就相当于fetch_row方法已经循环完存完一维数组的二维数组$rows”,可以直接打印。
相关文章推荐
- php链接mysql数据库
- thinkphp3.2整合银联手机网页支付
- thinkphp 跨模块调用
- php基本语法
- LNMP 1.1 php编译安装
- thinkphp3.2整合支付宝手机网页支付
- ThinkPHP 自动验证及验证规则详解
- thinkphp3.2实现微信JSAPI支付
- 第四篇 PHP的成长路线
- PHP的json_encode中文被转码的问题
- php学习日记第十一棒(计算器案例)
- php使用odbc执行复杂函数遇到的问题,sql语句直接在sqlserver数据库中运行有结果,使用php总是为空
- php中遍历二维数组的几种方法详解
- PHP环境配置小细节
- php--某个字符在字符串中的位置比较
- PHP字符编码问题-总结
- ThinkPHP 模块与操作
- PHP Cookie实战教程
- php学习日记第十棒(switch 语句)
- 安卓端上传图片到服务器php接收