重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这个问题在PHP的官方网站上叫缓冲查询和非缓冲查询(Buffered and Unbuffered queries)。PHP的查询缺省模式是缓冲模式。也就是说,查询数据结果会一次全部提取到内存里供PHP程序处理。这样给了PHP程序额外的功能,比如说,计算行数,将指针指向某一行等。更重要的是程序可以对数据集反复进行二次查询和过滤等操作。但这种缓冲查询模式的缺陷就是消耗内存,也就是用空间换速度。
创新互联是一家专注网站建设、网络营销策划、小程序开发、电子商务建设、网络推广、移动互联开发、研究、服务为一体的技术型公司。公司成立十年以来,已经为上1000家花箱各业的企业公司提供互联网服务。现在,服务的上1000家客户与我们一路同行,见证我们的成长;未来,我们一起分享成功的喜悦。
相对的,另外一种PHP查询模式是非缓冲查询,数据库服务器会一条一条的返回数据,而不是一次全部返回,这样的结果就是PHP程序消耗较少的内存,但却增加了数据库服务器的压力,因为数据库会一直等待PHP来取数据,一直到数据全部取完。
很显然,缓冲查询模式适用于小数据量查询,而非缓冲查询适应于大数据量查询。
PHP+Mysql多条件多值查询示例代码:
index.html代码:
!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "
html
head
meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
titleSQL多条件查询示例/title
/head
body
form method="post" action="deal.php"
h1房屋出租/h1
房屋类型:select name="type"
option value="1"一居室/option
option value="2"二居室/option
option value="3"三居室/option
/selectbr/
面积:input name="area" type="text"/br/
地址:input name="addr" type="text"/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;
case 2:
$query.=" room_type=2";
break;
case 3:
$query.=" room_type=3";
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 "br/";
echo "居室:".$row['type'];
echo "br/";
echo "价格:".$row['addr'];
echo "br/";
//等等
}
?
把数据都查出来,然后放到一个大数组里,然后对数组里面的内容进行匹配,将符合的放入一个新数组里,PHP的操作远比对数据库的操作要省时省力的多
SELECT * FROM `表名` WHERE bookid=22
获取BOOKID为22的记录,输出$uid=
if(strpos($uid,"2")!==false):echo"包含";else:echo"不包含";endif;
判断UID中是否含有2
MYSQLI方法统计数量
$num=mysqli_num_rows(mysqli_query($mysqli,"SELECT id FROM `表名` where pinglun=1"));
统计该表中pinglun=1的记录数量