1. 程式人生 > >最新版MySQL操作---語句規範

最新版MySQL操作---語句規範

還記得我第一次學習MySQL是在不到九月份,僅僅兩個多月的時間,現在再看MySQL就全然換了一番模樣了,又驚奇又無奈啊,畢竟“人之初,性本惰”啊,很尷尬,就這樣我們就又得學習新的知識。但是,從另一個角度來說其實是有好處的,年長者說的“活到老學到老”也是很有道理的對不對,哈哈,好了,不扯閒篇了,現在萍子來說說目前已瞭解到的MySQL的新變化,大家一起來看看吧。
說實話,雖然MySQL的變化不算太大,但是在某些地方也還是簡單了一些的,接下來,我們會根據操作MySQL的步驟,一步步的對比著說說變化。Let`s begin~
接下來,就假設我們的:
資料庫名為My_Second_DB
資料表名為menu

第一:連結資料庫

舊:
    $link1 = mysql_connect("localhost/主機名","root/賬號","無/密碼","My_Second_DB/資料庫名");
新:
    $link2 = mysqli_connect("localhost","root","","My_second_DB");

第二:統一編碼格式

舊:
    mysql_query($link1,"set names utf8");
新:
    mysqli_set_charset($link2,"utf8");

這二者其實現在還都可以用,但是建議還是用新版的。
而且相應的資料庫的編碼設定-排序規則也應該設定為utf8的格式。

第三:SQL語句

這裡我們來拿插入語句做例句:

舊:
    //在舊的sql語句中,這樣寫就足夠往資料庫裡插入一條資料了
    $sql1 = "insert into menu(name,price,img) values('$name','$price','$pic')";

新:
    //而在新的sql語句中,要注意引號的問題
    //這樣,menu的欄位在寫的時候,不加引號也還是可以的
    $sql2 = "insert into menu(name,price,img) values('$name','$price','$pic')";//對對對
    //但是如果加了單引號就是錯誤的,這個錯誤系統不會報錯,但是想要的結果是出不來的,需要多加註意
    $sql2 = "
insert into menu('name','price','img') values('$name','$price','$pic')";//錯錯錯 //而是需要加反引號,不是引號哦,注意注注意!!! $sql2 = "insert into menu(`name`,`price`,`img`) values('$name','$price','$pic')";//對對對

第四:解析結果

執行了第三書寫SQL語句,接下來就需要通過一些方法解析出我們需要的結果了。
在這一步,沒有什麼大變化,只是mysql這個擴充套件在5.5以後就不支援了,但是有些產品裡面還是會用老介面。我們呢,我們最好使用mysqli,不再用mysql。
這樣就意味著,之前方法裡的mysql都需要改寫成mysqli,這一點一定要注意哦。
然後我們在之前的博文MySQL操作步驟的解析語句的基礎上,新增一個方法,相比於之前的那些,這個方法會比較簡潔。

//首先要先執行SQL語句對資料庫的查詢
$result = mysqli_query($link,$sql2);

//我們要說的另一種簡單的解析結果的語句
mysqli_fetch_all(),返回結果集中所有的記錄
有兩個引數:
    一參是查詢結果;
    二參是解析方式: 
        不寫的話,預設MYSQLI_NUM,也就是說是索引陣列的方式返回資料;
        也可以設定為MYSQLI_ASSOC,以關聯陣列的方式返回資料; 
        或者MYSQLI_BOTH,以上兩種都有。
$all = mysqli_fetch_all($result);

以上這種方式,就避免了使用類似於mysqli_fetch_assoc等方法,需要使用while()迴圈的麻煩,嘚瑟嘚瑟~
當然了,也不是說其他的方法就沒有存在的必要了,具體用哪一種,也是要看大家的實際情況的。

第五步:關閉資料庫

這個沒啥好說的,再怎麼變,這個是不會變的,只要把mysql_close()改成mysqli_close()就好了。

好了,以上就是我所知道的,所有的mysql操作的變化,希望對大家有所幫助。