//1.連接數據庫
創新互聯專注為客戶提供全方位的互聯網綜合服務,包含不限于做網站、成都做網站、平羅網絡推廣、成都小程序開發、平羅網絡營銷、平羅企業策劃、平羅品牌公關、搜索引擎seo、人物專訪、企業宣傳片、企業代運營等,從售前售中售后,我們都將竭誠為您服務,您的肯定,是我們最大的嘉獎;創新互聯為所有大學生創業者提供平羅建站搭建服務,24小時服務熱線:18982081108,官方網址:vcdvsql.cn
$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?*?from?user';
//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();
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中文網其它相關文章!
查詢:select 字段名 from 表名 where 條件 order by ……
添加:insert into 表名(字段1,字段2……) values(值1,值2,……)
刪除:DELETE FROM 表名稱 WHERE 列名稱 = 值
修改:UPDATE 表名稱 SET 列名稱 = 新值 WHERE 列名稱 = 某值
php中,.是連接符,改成這樣
$proname = "SELECT areaname FROM oepre_user_params JOIN oepre_hometown ON oepre_user_params".".`provinceid` = oepre_hometown.`areaid` WHERE userid=123;
這么寫當然不行,因為in里面是個字符串你放數組格式就不對
用implode(",", $array)把數組轉為字符串就行,不用循環。
原生SQL查詢有 query() 和 execute() 兩個方法:
query():用于 SQL 查詢操作,并返回符合查詢條件的數據集
execute():更新和寫入數據的 SQL 操作,返回影響的記錄數
query()
query() 方法是用于 SQL 查詢操作,和select()方法一樣返回符合查詢條件的數據集。
例子:
public function read(){
// 實例化一個空模型,沒有對應任何數據表
$Dao = M();
//或者使用 $Dao = new Model();
$list = $Dao-query("select * from user where uid5");
if($list){
$this-assign('list', $list );
$this-display();
} else {
$this-error($Dao-getError());
}
}
對于 query() 方法返回的數據集,跟 select() 一樣,可以在模板里直接循環輸出。
execute()
execute() 方法用于更新和寫入數據的 SQL 操作(注:非查詢操作,無返回數據集),返回影響的記錄數。
例子:
public function read(){
header("Content-Type:text/html; charset=utf-8");
// 實例化一個空模型,沒有對應任何數據表
$Dao = M();
//或者使用 $Dao = new Model();
$num = $Dao-execute("update user set email = '12345@xxx.com' where uid=3");
if($num){
echo '更新 ',$num,' 條記錄。';
}else{
echo '無記錄更新';
}
}
如果查詢比較復雜或一些特殊的數據操作不能通過 ThinkPHP 內置的 ORM 和 ActiveRecord 模式實現時,就可以通過直接使用原生 SQL 查詢來實現。
注意:以上都是 user 沒有表前綴的例子,在查詢語句中,查詢的表應該寫實際的表名字(包括前綴)。
新聞標題:php查詢數據庫的語句,php數據庫函數
URL鏈接:http://vcdvsql.cn/article20/hsdcco.html
成都網站建設公司_創新互聯,為您提供虛擬主機、品牌網站建設、、搜索引擎優化、網站設計、定制網站
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯