php連接查詢數(shù)據(jù)庫(kù)的一般步驟如下:
目前創(chuàng)新互聯(lián)已為上千的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)頁(yè)空間、網(wǎng)站改版維護(hù)、企業(yè)網(wǎng)站設(shè)計(jì)、上思網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。
$con=mysqli_connect("localhost","root","123456","dbname");
$sql="SELECT name FROM web";
$result=mysqli_query($con,$sql);
//mysqli_fetch_array是從?結(jié)果集?中取得一行作為數(shù)字?jǐn)?shù)組或關(guān)聯(lián)數(shù)組
/*你可以先var_dump一下你的結(jié)果集 ?var_dump($result);看是否為空。如果為空就不關(guān)mysqli_fetch_array的事了,你要檢查的就是sql語(yǔ)句。*/
$row=mysqli_fetch_array($result);
//1.連接數(shù)據(jù)庫(kù)
$link?=?@mysql_connect('localhost','root','123456');
//2.判斷是否連接成功
if(!$link)?exit('數(shù)據(jù)庫(kù)連接失敗');
//3.選擇數(shù)據(jù)庫(kù)
mysql_select_db('mydatabase');
//4.設(shè)置字符集??utf8
mysql_set_charset('utf8');
//5.準(zhǔn)備一個(gè)SQL語(yǔ)句
$sql?=?'select?*?from?user';
//6.發(fā)送SQL語(yǔ)句
$result?=?mysql_query($sql);
//7.判斷并處理返回結(jié)果
if($result){
while($row?=?mysql_fetch_array($result)){
$list[]?=?$row;
}
echo?"pre";
print_r($list);
echo?"/pre";
}
//8.釋放資源
mysql_free_result($result);???//查詢操作才需要釋放結(jié)果集
mysql_close();
原生SQL查詢有 query() 和 execute() 兩個(gè)方法:
query():用于 SQL 查詢操作,并返回符合查詢條件的數(shù)據(jù)集
execute():更新和寫(xiě)入數(shù)據(jù)的 SQL 操作,返回影響的記錄數(shù)
query()
query() 方法是用于 SQL 查詢操作,和select()方法一樣返回符合查詢條件的數(shù)據(jù)集。
例子:
public function read(){
// 實(shí)例化一個(gè)空模型,沒(méi)有對(duì)應(yīng)任何數(shù)據(jù)表
$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());
}
}
對(duì)于 query() 方法返回的數(shù)據(jù)集,跟 select() 一樣,可以在模板里直接循環(huán)輸出。
execute()
execute() 方法用于更新和寫(xiě)入數(shù)據(jù)的 SQL 操作(注:非查詢操作,無(wú)返回?cái)?shù)據(jù)集),返回影響的記錄數(shù)。
例子:
public function read(){
header("Content-Type:text/html; charset=utf-8");
// 實(shí)例化一個(gè)空模型,沒(méi)有對(duì)應(yīng)任何數(shù)據(jù)表
$Dao = M();
//或者使用 $Dao = new Model();
$num = $Dao-execute("update user set email = '12345@xxx.com' where uid=3");
if($num){
echo '更新 ',$num,' 條記錄。';
}else{
echo '無(wú)記錄更新';
}
}
如果查詢比較復(fù)雜或一些特殊的數(shù)據(jù)操作不能通過(guò) ThinkPHP 內(nèi)置的 ORM 和 ActiveRecord 模式實(shí)現(xiàn)時(shí),就可以通過(guò)直接使用原生 SQL 查詢來(lái)實(shí)現(xiàn)。
注意:以上都是 user 沒(méi)有表前綴的例子,在查詢語(yǔ)句中,查詢的表應(yīng)該寫(xiě)實(shí)際的表名字(包括前綴)。