当前位置:知识百科 > 正文

php多个数据查询_php批量查询

更新时间:2025-02-02 16:50 阅读量:86809

php查询到多条数据结果后,将每一条结果放入数组

PHP查询到的数据存放到数组里面,一般使用$arr[]=$row的方式实现,$row是mysql_fetch_array获得的一行数据,本身是一个数组,执行上面的语句之后,这一行会添加存放在额为数组$arr的最后.

典型的例子代码是这样的:

$sql='select?*?from?test.tab';

if?($res=mysql_query($sql)){

while($row=mysql_fetch_array($res))?$result[]=$row;

mysql_free_resule($res);

}else?echo?"执行SQL语句:$sqlbr\n错误:".mysql_error();

echo?'查询结果在下面的额为数组里面:pre';

print_r($result);

echo?'/pre';

php如何一起查询多个数据库的所有表

下面的代码可以查询单个数据库的所有表的指定的字段内容,如何才能实现多个数据库一起查询相同字段的内容,每个数据库字段都一样,表都是100+个.并且下面的代码虽然能查询单个数据库所有表的内容,但是查询一次耗费时间很长,该怎么样优化才能加快速度,不然假设多个数据库一起查询实现了,该会变得多卡.

求教php-mvc模式下怎么批量查询多条数据yii1

该方法是根据一个条件查询一个集合

$admin=Admin::model()-findAll($condition,$params);

$admin=Admin::model()-findAll("username=:name",array(":name"=$username));

$admin=Admin::model()-findAll("username=:name and age=:age" , array(":name"=$name, "age"=$age));

$admin=Admin::model()-findAll("username like :name and age=:age" , array(":name"=$name, "age"=$age));

$infoArr= NewsList::model()-findAll("status = '1' ORDER BY id DESC limit 10 ");

php+mysql多条件多值查询

PHP+Mysql多条件多值查询示例代码:

index.html代码:

html

head

titleSQL多条件查询示例/title

/head

body

form?method="post"?action="deal.php"

h1房屋出租/h1

房屋类型:select?name="type"

option?value="1"一居室/option

/selectbr/

面积:input?name="area"?type="text"/br/

面积:input?name="area"?type="text"/br/

地址:input?name="addr"?type="text"/br/

地址:input?name="addr"?type="text"/br/

input?name="btn"?type="submit"?value="搜索"?/br/

input?name="btn"?type="submit"?value="搜索"?/br/

/form

/body

/html

deal.php文件:

php

//连接数据库

$conn=mysql_connect("localhost","root","");

//选择数据库

$db=mysql_select_db("数据库名");

//接收?参数

$type=$_POST['type'];

$area=$_POST['area'];

$addr=$_POST['addr'];

//SQL语句主题

$query="select?*?from?room?where?";?

//根据条件和传的值拼接sql语句

//判断面积不为空

if($type!=""){

//然后根据具体面积分情况拼接

switch($type){

?case?1:

??//一居室

??$query.="?room_type=1";?

??break;

}

//面积

if($area!=""){

$query.="?and?area?={$area}";

//地址

if($addr!=""){

$query.="?and?addr?like?'%{$addr}%'";?//地址

//执行查询

$result=mysql_query($query);

//遍历结果

echo?"搜搜结果如下:";

while($row=mysql_fetch_array($result)){

echo?"地址:".$row['addr'];

echo?"br/";

echo?"面积:".$row['area'];

echo?"居室:".$row['type'];

echo?"价格:".$row['addr'];

//等等

PHP代码查询显示多个数据为什么呢

根据你设定的条件, keyword参数必须是数字才会把它当作username去查询,而如果不是数字,则查询全部.所以,第一步,你应该把红色框里第二行的那个if语句整行删掉,然后第三行要改为:

..... 'username="'.$_POST['keyword'].'"';

PHP + Mysql多个表并行查询如何实现

在PHP-FPM处理HTTP请求时,有时会遇到一个请求需要进行多次MySQL查询(在报表类应用中比较常见).通常我们会以串行方式查询:

$link?=?new?mysqli();

$rs1?=?$link-query('SELECT?*?FROM?table1');

while?($row?=?$rs1-fetch_row())?{?...?}

串行查询方式有个缺点:在MySQL返回数据之前,PHP一直是处于空等的状态,不会继续往后执行.如果数据量大或者查询复杂,MySQL响应可能会比较慢,那么以串行方式查询会有一些延迟.给用户最直接的感受就是 Loading... 的圈圈一直打转.

那么有什么办法可以减少查询MySQL的时间?用多进程并行查询不行,因为PHP-FPM 中不允许用 pcntl_fork 一类的调用.

幸好还有 mysqlnd,mysqlnd提供了类似 stream_select 的机制(见 这篇文章) ,可以做到在单进程中对MySQL并行查询.这主要运用了mysqli_poll 和 reap_async_query 两个函数.

还是通过例子来介绍MySQL并行查询的实施方法.假设要并行地向MySQL发出10个查询,最基本的代码应该是这样的:

①?$links?=?[];

①.0.??if?(!mysqli_poll($reads,?$errors,?$reject,?null))?{

①.1.??continue;

解释下这段代码的含义:

注意query() 的第二个参数带上了 MYSQLI_ASYNC 表示非阻塞查询

①.0行,使用mysqli_poll 轮询10个连接的查询有无返回

mysqli_poll 的第一个参数$reads是个数组,包含需要轮询那些连接.mysqli_poll 执行完后,会改写$reads,改写后$reads包含的是那些已经有数据返回连接.

mysqli_poll的第四个参数,控制的是轮询的等待时间,单位是"秒".如果像本例当中设置为null,那么mysqli_poll轮询是阻塞的:只有监听的连接中,任意一个连接有数据返回了,mysqli_poll才会返回.如果等待时间设置为0,那么每次执行mysqli_poll会立即返回,外层的while会频繁循环.

reap_async_query和普通query一样,返回的是mysqli_result,可以一行行fetch数据

当所有的连接都返回了数据,$links数组空了,while循环也就终止了.

使用并行查询的方式,可以大大缩短处理HTTP请求的时间,假设本例中的10个SQL查询,每个需要执行1秒.因为是并行,处理所有的查询,也只需要1秒左右.

以上就是万林百科网小编为大家整理的php多个数据查询相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!