在使用php session進行數據查詢時主要有3中方法。第一種是使用函數【mysql_connect()】建立和MYSQL數據庫的連接。mysql_connect()是用來建立和MYSQL數據庫的連接,一共有5個參數,一般情況下只使用前3個參數,分別是MySQL服務器地址、用戶名以及密碼。第二種是使用函數【mysql_select_db()】指定要操作的數據庫。mysql_select_db()是用來指定要操作的數據庫。要是需要操作的數據庫還沒有創建,則需要創建數據庫,然后再創建數據庫中的表。第三種是使用函數【mysql_query()】查詢指令。mysql_query()是查詢指令的專用函數,所有的SQL語句都通過它執行,并返回結果集。一般情況下這三種方法是最適用的,希望可以解決你的問題。
讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業的熱愛。我們立志把好的技術通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領域值得信任、有價值的長期合作伙伴,公司提供的服務項目有:域名注冊、網頁空間、營銷軟件、網站建設、彝良網站維護、網站推廣。
thinkphp如何查詢數據庫?
數據庫查詢
ThinkPHP內置了非常靈活的查詢方法,可以快速的進行數據查詢操作。
查詢條件可以用于CURD等任何操作,作為where方法的參數傳入即可。
ThinkPHP可以支持直接使用字符串作為查詢條件,但是大多數情況推薦使用索引數組或者對象來作為查詢條件,因為會更加安全。
查詢方式
一、使用字符串作為查詢條件
這是最傳統的方式,但是安全性不高,例如:
1
2
$User = M("User"); // 實例化User對象
$User-where('type=1 AND status=1')-select();
最后生成的SQL語句是
1
SELECT * FROM think_user WHERE type=1 AND status=1
二、使用數組作為查詢條件
1
2
3
4
5
$User = M("User"); // 實例化User對象
$condition['name'] = 'thinkphp';
$condition['status'] = 1;
// 把查詢條件傳入查詢方法
$User-where($condition)-select();
最后生成的SQL語句是
1
SELECT * FROM think_user WHERE 'name'='thinkphp' AND status=1
如果進行多字段查詢,那么字段之間的默認邏輯關系是 邏輯與 AND,但是用下面的規則可以更改默認的邏輯判斷,通過使用 _logic 定義查詢邏輯:
1
2
3
4
5
6
$User = M("User"); // 實例化User對象
$condition['name'] = 'thinkphp';
$condition['account'] = 'thinkphp';
$condition['_logic'] = 'OR'; //定義查詢邏輯
// 把查詢條件傳入查詢方法
$User-where($condition)-select();
最后生成的SQL語句是
1
SELECT * FROM think_user WHERE 'name'='thinkphp' OR `account`='thinkphp'
三、使用對象方式來查詢 (這里以stdClass內置對象為例)
1
2
3
4
5
6
$User = M("User"); // 實例化User對象
// 定義查詢條件
$condition = new stdClass();
$condition-name = 'thinkphp';
$condition-status= 1;
$User-where($condition)-select();
最后生成的SQL語句和上面一樣
1
SELECT * FROM think_user WHERE `name`='thinkphp' AND status=1
使用對象方式查詢和使用數組查詢的效果是相同的,并且是可以互換的,大多數情況下,我們建議采用數組方式更加高效,后面我們會以數組方式為例來講解具體的查詢語言用法。
表達式查詢
上面的查詢條件僅僅是一個簡單的相等判斷,可以使用查詢表達式支持更多的SQL查詢語法,并且可以用于數組或者對象方式的查詢(下面僅以數組方式為例說明),查詢表達式的使用格式:
1
$map['字段名'] = array('表達式','查詢條件');
表達式不分大小寫,支持的查詢表達式有下面幾種,分別表示的含義是:
1
2
3
4
$map['id']? = array('eq',100);? id = 100;
$map['id']? = array('egt',100);id = 100
$map['name'] = array('like','thinkphp%'); name like 'thinkphp%' 模糊查詢
$map['a'] =array('like',array('%thinkphp%','%tp'),'OR');$map['b'] =array('notlike',array('%thinkphp%','%tp'),'AND'); (a like '%thinkphp%' OR a like '%tp') AND (b not like '%thinkphp%' AND b not like '%tp')
本文來自ThinkPHP框架技術文章欄目:
以上就是thinkphp如何查詢數據庫的詳細內容,更多請關注php中文網其它相關文章!
mysqli有兩種數據庫連接方式:
1、面向過程式連接:
mysqli_connect('localhost','xxx','xxx','xxx');
mysqli_query('');
后使用mysqli_fetch_assoc方法獲取到數據。
2、面向對象式連接:
$mysqli?=?new?mysqli("localhost",?"my_user",?"my_password",?"world");
$result?=?$mysqli-query('');
后使用$result-fetch_assoc()獲取數據。
至于num_rows是獲取查詢到的行數的方法。
?php
/**
*
@param
string
$url
地址url
*
@return
$array
返回url對應的id
*/
function
getid($url){
//連接數據庫
mysql_connect('localhost','root','user')
or
die('數據庫鏈接失敗');
//不清楚數據庫名稱,這里用dbname代表數據庫名稱。需要替換為實際的數據庫名稱
mysql_select_db('dbname');
mysql_query('set
names
utf8');//如果頁面編碼是utf-8的。這里設置查詢的編碼為utf-8
$sql
=
"select
`id`
from
`visitor`
where
`file`='{$url}'";
$result
=
mysql_query($sql);
//不清楚url是不是會重復,這里循環可以保證得到所有的id
while($row
=
mysql_fetch_assoc($result)){
$id[]
=
$row['id']
}
//如果url不會重復則使用$id[0],如果會重復則循環$id就可以得到每個id了。
return
$id;
}
1、首先,創建一個方法function來供調用。
2、先判斷id是否為0,為0則是不存在這條數據的。(假設判斷數據庫的數據是否存在相同id的數據)
3、然后寫sql語句,能查詢對應id的數據是否存在了。
4、然后調用查詢數據庫的方法,判斷返回來的結果是否為空。不為空則是數據已存在。
5、如果是判斷數據是否存在的關鍵字段是字符串的,我們稍為改一下代碼就行了,比如這里的,判斷email是否已經存在于數據庫中。
6、我們這里的queryFirstColumn方法是封裝好的數據庫函數。
7、也可以將其改成一般的mysql_query的系統內置方法來查詢的,代碼如圖。
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快速查詢數據庫數據 php連接數據庫查詢數據
文章URL:http://www.yijiale78.com/article16/dodcdgg.html
成都網站建設公司_創新互聯,為您提供外貿建站、外貿網站建設、關鍵詞優化、網站策劃、移動網站建設、靜態網站
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯