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'