结果已经有了,我就说下这句话的区别
网站设计制作过程拒绝使用模板建站;使用PHP+MYSQL原生开发可交付网站源代码;符合网站优化排名的后台管理系统;成都网站建设、做网站收费合理;免费进行网站备案等企业网站建设一条龙服务.我们是一家持续稳定运营了10余年的创新互联公司网站建设公司。
mysql_select_db,字面上就能理解,选择数据库
去PHP手册中可以发现该函数的返回值是bool,也就是布尔值
bool mysql_select_db ( string $database_name [, resource $ link_identifier ] )
只是确定操作是否成功
$result = mysql_query($sql, $link); // 执行查询语句
是执行查询语句,这时返回的是
resource mysql_query ( string $query [, resource $link_identifier ] )
资源符号,通过var_dump($result)可以看到该变量的类型,不是数组
随后通过mysql_fetch_array($result);获取实际查询语句所能获取的数据
每次操作,返回一行数据
该操作会变相的移动该资源的指针,PHP的概念里面没有指针,但需要知道该函数可以多次执行
概念和foreach一致
所以通过
while ($bookInfo = mysql_fetch_array($result)){
}
可以获取所有的行数据
如果没有数据会返回false,所以while会自动停止循环
PHP从数据库提取并显示数据的典型代码如下:
?php
//连接数据库,三个参数:数据库服务器IP,用户名,密码
if(mysql_connect('127.0.0.1', 'root', '123456')){
//数据库连接成功,开始查询,下面是SQL语句
//此例子SQL查询数据库test里面的表tab,假设有一个数值字段score,查询其值大于60的数据行
$sql="select from test.tab where score60";
if ($res=mysql_query($sql)){
//数据库查询执行成功
while($row=mysql_fetch_array($res)){
//循环查询满足条件的所有记录
echo '姓名:'.$row['name'] . '成绩:'. $row['score']. 'br';
}
//删除查询
mysql_free_result($res);
}else echo "执行数据库查询失败,语句: $sqlbr原因:".mysql_error();
//关闭数据库
mysql_close();
}else echo "数据库连接失败,原因是:".mysql_error()l
// 这是因为你从资源型结果集中获取数据时只获取了一次, 如果查询为多条数据应该迭代资源型结果集
$r = mysql_query($sql); // 你的结果集
$result = [];
while (true) {
$ary = mysql_fetch_assoc($r); // 取出第一条数据, 数据指针向后移动一位
if ($ary) {
$result[] = $ary; // 存储到结果数组中
} else {
break; // 如果取出的结果为false, 则代表数据获取完毕, 终止循环
}
}
echo 'pre';
print_r($result); // 打印最终结果
echo '/pre';
mysql_fetch_array只是从结果集中取出一行数据,如果你需要输出所有行的内容的话,需要循环取数据。
大致如下(没有测试过,应该没问题):
while ($row = mysql_fetch_array($result)) {
print_r($row);
}