2015-04-02 40 views
0

最近我似乎正在寫幾乎相同的SQL語句,我不得不使用PHP進行循環和錯誤報告,所以我試圖寫一些將縮短我的代碼廣泛。我還在學習編程。如何建立一個自定義的PHP Mysql或PDO功能

我不知道我是否需要使用類或什麼,但這裏是我想要做的一個例子。

/////////q = query, f = fetch type(loop or single object), r = row; 
function dbQuery($q, $f, $r){ 
global $con;  
$query = mysqli_query($con, $q) or die(mysqli_error($con)); 
if ($f = 'loop'){ 
    while($row = mysqli_fetch_array($query)){ 
     echo $r; 
     } 
    } else if ($f='single'){ 
     $row = mysqli_fetch_array($query); 
     echo $r; 
    } 
///////////or prepared statements////////// 
} 
dbQuery("SELECT * FROM music WHERE perms = 'a' limit 50", $f='loop', $r="<div>".$row['title']."</div>" 
); 

我想要的東西,像下面,我知道它不是寫的,但我希望能有上述迴歸結果列於功能的ARG功能。

dbQuery($f='loop'){ /////////// I really don't know the corrent way for this//// 
    $q= "SELECT * FROM music WHERE perms = 'a' limit 50"; 
    $r="<div>".$row['title']."</div>"; 
    ////////and breaking out of php//// 
    ?> 
    <section><?php echo $row['duration']; ?></section> 
    <?php 
    } 

請做推薦材料,我可以檢查出來。

+0

查看準備好的語句,它們對安全性有好處,它們可以讓您輕鬆地使用不同的值多次運行相同的查詢。 – Styphon 2015-04-02 12:24:50

回答

0

我會推薦你​​使用一些像Laravel這樣的框架或者一些查詢構建器類。他們有很多。如果由於某種原因,你會喜歡創建自己的,請不要使用mysql函數,因爲已經被棄用了。就個人而言,我會更喜歡PDO而不是mysqli(這只是一種偏好),確保準備報表。檢查此鏈接出來,它會幫助你與你的項目

http://wiki.hashphp.org/PDO_Tutorial_for_MySQL_Developers

祝你好運與您的項目。

+0

與PDO無關我只想構建一個查詢構建器類。 – Relm 2015-04-02 18:29:15

+0

Awsome @Relm。這是一個很酷的項目。我只是與你分享,如何在MySQL查詢生成器看起來像在Laravel。我認爲他們做了一些出色的工作。你可能想檢查他們的源代碼並獲得一些想法。 http://laravel.com/docs/4.2/queries – 2015-04-02 18:42:24

+0

很好,我在看它,我唯一的問題是我想將整個Laverel庫帶到我的代碼中,並且也適應它的語法,那就是對於我試圖在這裏實現的任務來說有點矯枉過正。我認爲,如果我們可以嘗試用我目前對於mysqli的小問題進行簡單的介紹(例如,我將把它改爲PDO),那就沒問題。 – Relm 2015-04-02 19:26:39