php的mysql查询数据
你这里定义的是函数,是内联在单个sql语句中使用的
这里的效果应该是把上级数据id查出来用, 拼接返回(用于其它查询或条件判断)
所以,这个查询并没有多个结果集,只是按id以及上级所有id查询出一系列数据而已
数据查询出来后是没有层级关系的,只是扁平的一组二维数据,需要按关系排列的话,可以手动排列
Ⅱ 关于php操作mysql执行数据库查询的一些常用操作汇总
php操作mysql步骤:
1.$connect=mysql_connect('localhost','root','123456')
or
die('数据库连接失败。'mysql_error());链接mysql。
2.mysql_select_db('database',$connect)选择链接的数据库。
3.mysql_query('Set
names
gb2312');$sql
=
"select
*
from
blog_article";准备要查询的数据。
4.$datas
=
mysql_query($sql);执行sql查询。
5.$data
=
mysql_fetch_assoc($datas)得到查询到的缓存在内存中的一条数据。
6.print_r($data);
相同点:三个函数都是返回数据库中查询到的一行数据(说的再清楚点就是一条数据)。
不同点:mysql_fetch_assoc()用的是数据库中相应的字段名作为的key值(也就是数组下标)
如:filed['id']=1;
mysql_fetch_row()用的是自动生成的数字(从0开始依次生成)作为的key值(也就是数组下标)
如:filed[0]=1;
mysql_fetch_array()用的是自动生成的数字(从0开始依次生成)作为的key值(也就是数组下标),而且它还同时生成数据库中相应的字段名作为的key值(也就是数组下标)
如:
filed[0]=1,filed['id']=1;也就是说,mysql_fetch_array()将mysql_fetch_assoc()和mysql_fetch_row()查询到的结果合为了一体了。
mysql_fetch_object()与mysql_fetch_assoc()差不多。只是mysql_fetch_assoc()返回的是数组。mysql_fetch_object()返回的是object对象。
mysql_insert_id() 取得上一步
INSERT
操作产生的
ID。
mysql_result()
函数返回结果集中一个字段的值。
mysql_num_fields()
函数返回结果集中字段的数目。
mysql_affected_rows();返回前一次
MySQL
操作所影响的记录行数。
mysql_num_rows(mysql_query($sql))获得结果集中行的数目。
mysql_pconnect()
函数打开一个到
MySQL
服务器的持久连接。
mysql_pconnect()
和
mysql_connect()
非常相似,但有两个主要区别:
1.
当连接的时候本函数将先尝试寻找一个在同一个主机上用同样的用户名和密码已经打开的(持久)连接,如果找到,则返回此连接标识而不打开新连接。
2.
其次,当脚本执行完毕后到
SQL
服务器的连接不会被关闭,此连接将保持打开以备以后使用(mysql_close()
不会关闭由
mysql_pconnect()
建立的连接)。
mysql_data_seek(mysql_query($sql),8);获得结果集中的第8条数据。(mysql_num_rows(mysql_query($sql))和mysql_data_seek(mysql_query($sql),8)在mysql_unbuffered_query($sql)不可以使用。)
mysql_unbuffered_query($sql)和mysql_query($sql)效果差不多,但是
mysql_unbuffered_query($sql)不缓存。mysql_query($sql)会缓存查询的结果。
mysql_close();关闭mysql的最近的链接。
mysql_field_flags(mysql_query($sql),6)返回第六个字段的表属性输出如:not_null
primary_key
auto_increment
。
mysql_fetch_lengths(mysql_query($sql))返回该条数据的所有字段的每个字段的长度。返回的是一个数字组成的数组。
mysql_field_name(mysql_query($sql),3)返回第三个字段的字段名。
mysql_field_table(mysql_query($sql),0)返回指定字段所在的表名。
mysql_free_result(mysql_query($sql))
函数释放结果内存。
mysql_get_client_info()
函数返回
MySQL
客户端信息。
mysql_get_host_info()
取得
MySQL
主机信息。
Ⅲ php 多条件查询数据库MySQL
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的记录数量
Ⅳ PHP输出mysql查询!
<?php
require("conn_inc.php");//调用数据库连接文件,你的不一定是这个名字。
$asql='SELECT
*
FROM
`total`
where
`ID`=1
ORDER
BY
`OD`
ASC'
;
//上面SQL语句中,关键是最后的排序指令“
ORDER
BY
`OD`
ASC'”,这个决定显示时的顺序。
$a2=mysql_query($asql,$myconn)or
die("对不起,读入数据时出错了!".
mysql_error());
while($row2=mysql_fetch_array($a2))//通过循环读取数据内容
{
echo($row2["NAME"]."——".$row2["PRICE"]."<br>")
;
}
?>
输出来的结果如下:
T——50
S——20
D——100
P——60
L——230
你把上面
echo($row2["NAME"]."——".$row2["PRICE"]."<br>")
;
中的“——”改成空格,就是你要的结果了。鄙视。刚才那个分多的。为什么采纳?!
Ⅳ php mysql怎么查询数据库
//1.连接数据库
$link=@mysql_connect('localhost','root','123456');
//2.判断是否连接成功
if(!$link)exit('数据库连接失败');
//3.选择数据库
mysql_select_db('mydatabase');
//4.设置字符集utf8
mysql_set_charset('utf8');
//5.准备一个SQL语句
$sql='select*fromuser';
//6.发送SQL语句
$result=mysql_query($sql);
//7.判断并处理返回结果
if($result){
while($row=mysql_fetch_array($result)){
$list[]=$row;
}
echo"<pre>";
print_r($list);
echo"</pre>";
}
//8.释放资源
mysql_free_result($result);//查询操作才需要释放结果集
mysql_close();
Ⅵ php如何查询mysql字段内的值
如果是把【用户名】为【tom】的都取出来,那么SQL语句为:
SELECT * FROM 表名 WHERE 用户名='tom'
如果只想看看有多少个【用户名】为【tom】的,那么SQL语句为:
SELECT COUNT(*) FROM 表名 WHERE 用户名='tom'