原生SQL查詢有 query() 和 execute() 兩個方法:
公司主營業(yè)務(wù):成都網(wǎng)站建設(shè)、做網(wǎng)站、移動網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。成都創(chuàng)新互聯(lián)是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊有機(jī)會用頭腦與智慧不斷的給客戶帶來驚喜。成都創(chuàng)新互聯(lián)推出同江免費做網(wǎng)站回饋大家。
query():用于 SQL 查詢操作,并返回符合查詢條件的數(shù)據(jù)集
execute():更新和寫入數(shù)據(jù)的 SQL 操作,返回影響的記錄數(shù)
query()
query() 方法是用于 SQL 查詢操作,和select()方法一樣返回符合查詢條件的數(shù)據(jù)集。
例子:
public function read(){
// 實例化一個空模型,沒有對應(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());
}
}
對于 query() 方法返回的數(shù)據(jù)集,跟 select() 一樣,可以在模板里直接循環(huán)輸出。
execute()
execute() 方法用于更新和寫入數(shù)據(jù)的 SQL 操作(注:非查詢操作,無返回數(shù)據(jù)集),返回影響的記錄數(shù)。
例子:
public function read(){
header("Content-Type:text/html; charset=utf-8");
// 實例化一個空模型,沒有對應(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 '無記錄更新';
}
}
如果查詢比較復(fù)雜或一些特殊的數(shù)據(jù)操作不能通過 ThinkPHP 內(nèi)置的 ORM 和 ActiveRecord 模式實現(xiàn)時,就可以通過直接使用原生 SQL 查詢來實現(xiàn)。
注意:以上都是 user 沒有表前綴的例子,在查詢語句中,查詢的表應(yīng)該寫實際的表名字(包括前綴)。
不管怎樣,在這里我總結(jié)了常用的PHP連接MySQL數(shù)據(jù)庫以及讀取寫入數(shù)據(jù)庫的方法,希望能夠幫到你,當(dāng)然也是作為我自己的一個回顧總結(jié)。
1.為了更好地設(shè)置數(shù)據(jù)連接,一般會將數(shù)據(jù)連接所涉及的值定義成變量.
?
1
2
3
4
5
6
7
$mysql_server_name='localhost'; //改成自己的mysql數(shù)據(jù)庫服務(wù)器
$mysql_username='root'; //改成自己的mysql數(shù)據(jù)庫用戶名
$mysql_password='123456'; //改成自己的mysql數(shù)據(jù)庫密碼
$mysql_database='Mydb'; //改成自己的mysql數(shù)據(jù)庫名
也可把以上變量放在一個文件里,可以隨時讓其他文件調(diào)用.
例如: 將以上內(nèi)容放在:db_config.php 那么在其他需要用到數(shù)據(jù)庫的頁面直接調(diào)用.
調(diào)用代碼:require("db_config.php");
2.連接數(shù)據(jù)庫
?
1
2
3
4
5
6
7
8
9
$conn=mysql_connect($mysql_server_name,$mysql_username,$mysql_password) or die("error connecting") ; //連接數(shù)據(jù)庫
mysql_query("set names 'utf8'"); //數(shù)據(jù)庫輸出編碼 應(yīng)該與你的數(shù)據(jù)庫編碼保持一致.南昌網(wǎng)站建設(shè)公司百恒網(wǎng)絡(luò)PHP工程師建議用UTF-8 國際標(biāo)準(zhǔn)編碼.
mysql_select_db($mysql_database); //打開數(shù)據(jù)庫
$sql ="select * from news "; //SQL語句
$result = mysql_query($sql,$conn); //查詢
3.讀取表中的內(nèi)容,這里我們用while,可以根據(jù)具體情況,用for 或其他的.
?
1
2
3
4
5
6
7
8
9
10
11
while($row = mysql_fetch_array($result))
{
echo "div style=\"height:24px; line-height:24px; font-weight:bold;\""; //排版代碼
echo $row['Topic'] . "br/";
echo "/div"; //排版代碼
}
4.php寫入數(shù)據(jù)庫,Mysql數(shù)據(jù)的寫入
你的意思是說
點擊查詢后
要吧與關(guān)鍵字相關(guān)聯(lián)的整條記錄都顯示出來?
那樣的話
你要先把這條記錄復(fù)制
給某個數(shù)組,然后輸出這個數(shù)組就可以了
$sql="select
*
from
db1
where
name=$_post[name]";
$result=mysql_query($sql,$con);
$row=mysql_fetch_array($result)
echo
$row[name];
echo
$row[age];
……
SQL只查詢了keyname,判斷語句要判斷status,所以導(dǎo)致了誤判。
兩種修改,一是select keyname修改為select status,二是把判斷的ret['status']==0修改為ret['keyname']=='268e'