重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
PHP查询到的数据存放到数组里面,一般使用$arr[]=$row的方式实现,$row是mysql_fetch_array获得的一行数据,本身是一个数组,执行上面的语句之后,这一行会添加存放在额为数组$arr的最后。
成都创新互联网站建设公司,提供成都网站设计、成都网站建设,网页设计,建网站,PHP网站建设等专业做网站服务;可快速的进行网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,是专业的做网站团队,希望更多企业前来合作!
典型的例子代码是这样的:
mysql_connect('127.0.0.1', 'root', '123456');
$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';
1、登录sql server managment管理工具,找一个表。
2、假如要按照时间倒着排序。
3、直接在order by 后面加desc。
4、然后结果就按照时间倒着排了。
5、不输入desc的话就是正着排。
6、可以看到结果按照时间正着排了。
不行,两个是完全不同的结构
如果硬把数组,比如{1,2,3,4,5}存入数据库
唯一的方法是把"1,2,3,4,5"当作varchar存进去。
所以只能遍历这个数组然后分别吧1,2,3,4,5存进去。
当然,java框架也许会提供类似的方法,你传一个数组进去,他直接就抱存入数据库。但是内部也一定是拆开存的。
008. 数据库的数据查询
本节课我们来了解一下数据库的数据查询方式,单数据、数据集和其它查询。
一.单数据查询
1. Db::table()中table必须指定完整数据表(包括前缀);
2. 如果希望只查询一条数据,可以使用find()方法,需指定where条件;
Db::table('tp_user')-where('id', 27)-find()
3. Db::getLastSql()方法,可以得到最近一条SQL查询的原生语句;
SELECT * FROM `tp_user` LIMIT 1
4. 没有查询到任何值,则返回null;
5. 使用findOrFail()方法同样可以查询一条数据,在没有数据时抛出一个异常;
Db::table('tp_user')-where('id', 1)-findOrFail()
6. 使用findOrEmpty()方法也可以查询一条数据,但在没有数据时返回一个空数组;
7. Db::table('tp_user')-where('id', 1)-findOrEmpty();
二.数据集查询
1. 想要获取多列数据,可以使用select()方法;
Db::table('tp_user')-select(); SELECT * FROM `tp_user`
2. 多列数据在查询不到任何数据时返回空数组,使用selectOrFail()抛出异常; Db::table('tp_user')-where('id', 1)-selectOrFail();
3. 在select()方法后再使用toArray()方法,可以将数据集对象转化为数组;
4. 当在数据库配置文件中设置了前缀,那么我们可以使用name()方法忽略前缀; Db::name('user')-select();
三.其它查询
1. 通过value()方法,可以查询指定字段的值(单个),没有数据返回null;
Db::name('user')-where('id', 27)-value('username');
$user = Db::table('tp_user')-select()-toArray(); dump($user);
2. 通过colunm()方法,可以查询指定列的值(多个),没有数据返回空数组; Db::name('user')-column('username');
3. 可以指定id作为列值的索引;
4. 如果处理的数据量巨大,成百上千那种,一次性读取有可能会导致内存开销过大;
5. 为了避免内存处理太多数据出错,可以使用chunk()方法分批处理数据;
6. 比如,每次只处理100条,处理完毕后,再读取100条继续处理;
7. 可以利用游标查询功能,可以大幅度减少海量数据的内存开销,它利用了PHP生成器特性。每次查询只读一行,然后再读取时,自动定位到下一行继续读取;
Db::name('user')-column('username', 'id');
Db::table('tp_user')-chunk(3, function($users) { foreach ($users as $user) {
dump($user);
}
echo 1; });
$cursor = Db::table('tp_user')-cursor(); foreach($cursor as $user){
dump($user);
}
本文实例讲述了php实现通用的从数据库表读取数据到数组的函数。分享给大家供大家参考。具体分析如下:
此函数不关心表结构,只需要指定表名、结构和查询条件既可以对表进行通用查询操作,非常实用。
function listmytablerows($table, $name, $field, $where, $textID) { / / Connect to the database and query execution connect (); $Sql = "select * from". $table. "". $where. "ORDER BY". $field; $Req = mysql_query($sql); $Res = mysql_num_rows($req); ? Select name = "?php echo $name; ?" id="?php echo $textID; ?" option value="" ____/ option ? Php / / We do a loop that will read the information for each record while ($data = mysql_fetch_array($res)) { / / We display the information from the current record ? Option value = "?php echo $data['id']; ?" ?php echo $data[$field]; ? / Option ? Php } ? / Select ? Php } ?
我也很就纠结这个问题,现在我是这样做的
$res = mysqli_query ($sql, "select BCur from microvast where id between 1 and 50");
foreach($res as $x=$x_value) {
foreach($x_value as $k=$v) {
$data[] = $v;
}
这样可以$data[]生成了‘BCur’一列的一个索引数组,但是执行效率不高,多列就要做多次查询,期待更好的方法。
while ($row=mysqli_fetch_assoc($res)){
$id=$row["id"];
......
echo $id;
}
这个办法只能打印出来