原生SQL查詢有 query() 和 execute() 兩個(gè)方法:
創(chuàng)新互聯(lián)建站是一家專注于成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)與策劃設(shè)計(jì),牧野網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)建站做網(wǎng)站,專注于網(wǎng)站建設(shè)10多年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:牧野等地區(qū)。牧野做網(wǎng)站價(jià)格咨詢:18980820575
query():用于 SQL 查詢操作,并返回符合查詢條件的數(shù)據(jù)集
execute():更新和寫入數(shù)據(jù)的 SQL 操作,返回影響的記錄數(shù)
query()
query() 方法是用于 SQL 查詢操作,和select()方法一樣返回符合查詢條件的數(shù)據(jù)集。
例子:
public function read(){
// 實(shí)例化一個(gè)空模型,沒有對應(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 操作(注:非查詢操作,無返回?cái)?shù)據(jù)集),返回影響的記錄數(shù)。
例子:
public function read(){
header("Content-Type:text/html; charset=utf-8");
// 實(shí)例化一個(gè)空模型,沒有對應(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 模式實(shí)現(xiàn)時(shí),就可以通過直接使用原生 SQL 查詢來實(shí)現(xiàn)。
注意:以上都是 user 沒有表前綴的例子,在查詢語句中,查詢的表應(yīng)該寫實(shí)際的表名字(包括前綴)。
1、用navicat新建一個(gè)數(shù)據(jù)庫database1。
2、在database1數(shù)據(jù)庫中新建一個(gè)表table2。
3、在table2中添加新的數(shù)據(jù),新建一個(gè)名稱為mysql_query的數(shù)據(jù)庫。
4、在頁面中用mysql_connect 函數(shù)與數(shù)據(jù)庫建立連接。
5、用mysql_select_db函數(shù)選擇要查詢的數(shù)據(jù)庫。
6、添加一個(gè)查詢 table2表的查詢語句“$sql=select * from table2“。
7、將查詢語句$sql添加到查詢數(shù)據(jù)庫函數(shù)mysql_query中,返回值賦值給變量query。
8、最后將mysql_query。php文件在瀏覽器中打開,查看查詢到數(shù)據(jù)庫中的內(nèi)容的結(jié)果。
首先登陸要用用戶名,密碼等等信息,這些都要存在數(shù)據(jù)庫中,這樣才能用戶登陸時(shí)驗(yàn)證是否能夠登陸,
1.創(chuàng)建一個(gè)數(shù)據(jù)庫,建表例表一(用戶名,密碼)等等。。
1.設(shè)計(jì)頁面代碼包含連接數(shù)據(jù)庫,數(shù)據(jù)庫操作代碼等等(加入用戶,刪除用戶。。)
2.代碼中包含用戶登陸輸入
用戶名,密碼
3.打開數(shù)據(jù)庫表,查找是否有該用戶名,如果存在,密碼是否正確,不正確byebye
(請看java書本
數(shù)據(jù)庫內(nèi)容,包含建立數(shù)據(jù)庫,添加刪除基本操作)
1、首先,創(chuàng)建一個(gè)方法function來供調(diào)用。
2、先判斷id是否為0,為0則是不存在這條數(shù)據(jù)的。(假設(shè)判斷數(shù)據(jù)庫的數(shù)據(jù)是否存在相同id的數(shù)據(jù))
3、然后寫sql語句,能查詢對應(yīng)id的數(shù)據(jù)是否存在了。
4、然后調(diào)用查詢數(shù)據(jù)庫的方法,判斷返回來的結(jié)果是否為空。不為空則是數(shù)據(jù)已存在。
5、如果是判斷數(shù)據(jù)是否存在的關(guān)鍵字段是字符串的,我們稍為改一下代碼就行了,比如這里的,判斷email是否已經(jīng)存在于數(shù)據(jù)庫中。
6、我們這里的queryFirstColumn方法是封裝好的數(shù)據(jù)庫函數(shù)。
7、也可以將其改成一般的mysql_query的系統(tǒng)內(nèi)置方法來查詢的,代碼如圖。
創(chuàng)建數(shù)據(jù)庫
選擇開始菜單中→程序→【Management SQL Server 2008】→【SQL Server Management Studio】命令,打開【SQL Server Management Studio】窗口,并使用Windows或 SQL Server身份驗(yàn)證建立連接。
在【對象資源管理器】窗口中展開服務(wù)器,然后選擇【數(shù)據(jù)庫】節(jié)點(diǎn)
右鍵單擊【數(shù)據(jù)庫】節(jié)點(diǎn),從彈出來的快捷菜單中選擇【新建數(shù)據(jù)庫】命令。
執(zhí)行上述操作后,會彈出【新建數(shù)據(jù)庫】對話框。在對話框、左側(cè)有3個(gè)選項(xiàng),分別是【常規(guī)】、【選項(xiàng)】和【文件組】。完成這三個(gè)選項(xiàng)中的設(shè)置會后,就完成了數(shù)據(jù)庫的創(chuàng)建工作,
在【數(shù)據(jù)庫名稱】文本框中輸入要新建數(shù)據(jù)庫的名稱。例如,這里以“新建的數(shù)據(jù)庫”。
在【所有者】文本框中輸入新建數(shù)據(jù)庫的所有者,如sa。根據(jù)數(shù)據(jù)庫的使用情況,選擇啟用或者禁用【使用全文索引】復(fù)選框。
在【數(shù)據(jù)庫文件】列表中包括兩行,一行是數(shù)據(jù)庫文件,而另一行是日記文件。通過單擊下面的【添加】、【刪除】按鈕添加或刪除數(shù)據(jù)庫文件。
切換到【選項(xiàng)頁】、在這里可以設(shè)置數(shù)據(jù)庫的排序規(guī)則、恢復(fù)模式、兼容級別和其他屬性。
切換到【文件組】頁,在這里可以添加或刪除文件組。
完成以上操作后,單擊【確定】按鈕關(guān)閉【新建數(shù)據(jù)庫】對話框。至此“新建的數(shù)據(jù)”數(shù)據(jù)庫創(chuàng)建成功。新建的數(shù)據(jù)庫可以再【對象資源管理器】窗口看到。
mysqli有兩種數(shù)據(jù)庫連接方式:
1、面向過程式連接:
mysqli_connect('localhost','xxx','xxx','xxx');
mysqli_query('');
后使用mysqli_fetch_assoc方法獲取到數(shù)據(jù)。
2、面向?qū)ο笫竭B接:
$mysqli?=?new?mysqli("localhost",?"my_user",?"my_password",?"world");
$result?=?$mysqli-query('');
后使用$result-fetch_assoc()獲取數(shù)據(jù)。
至于num_rows是獲取查詢到的行數(shù)的方法。