2011-10-19 47 views
0

在MySQL中我使用此代碼從MySQL轉換特定技術的mysqli(PHP)

$somenumber=5; 
$result = mysql_query("SELECT * FROM some_table") 
while($row = mysql_fetch_array($result)) { 
echo $row['id'.$somenumber]; 
} 

請幫我使用的mysqli做的最好的方式是相同的,大概OPP風格我想原因大家說最好的辦法使用oop方式。對不起,我只是天花板高度此

+0

我可以給你一個小竅門:用一個框架(比如CakePHP的),你不擔心這樣的東西。它將在DBO包裝類後面爲您完成。那麼你可以專注於更緊急的事情。 – mark

+0

抱歉,但我想更好地學習自己的,而不是開始學習該框架是如何工作的,不知道節目的ABC一切:) – David

+0

上有PHP網站OO例子:http://php.net/manual/en/mysqli .query.php –

回答

4

要與庫MySQLi OOP做到這一點,您可以創建一個對象,然後調用它的query()方法。

$mysqli = new mysqli('hostname','user','password','databasename'); 
if (!$mysqli) { 
    // connect failure, check connect_error() 
    echo $mysqli->connect_error(); 
} 
else { 
    // Call query() to execute your SQL 
    $result = $mysqli->query("SELECT * FROM some_table"); 
    if ($result) { 
    // $result is an object of type mysqli_result 
    // Call fetch_assoc() on $result 
    while ($row = $result->fetch_assoc()) 
     echo $row['id']; 
    } 
} 

如果你有輸入參數,你會傳遞到你的查詢,以real_escape_string()

$somevar = $mysqli->real_escape_string($somevar); 
$mysqli->query("SELECT * FROM sometable WHERE somecolumn='$somevar';"); 

逃脫他們的MySQLi原則的好處比舊mysql_* API是

  • 的使用prepared statements,而不是動態SQL字符串
  • 對象ORI能力你可以用自己的課程編輯extend
+0

可以寫$ result = $ mysqli-> query(「SELECT * FROM some_table」)或者mysql_connect_error(); ??? – David

+0

順便看起來像是一樣的mysql。思考爲什麼這是優於普通的mysql ..... – David

+0

@大衛'$結果= $ mysqli->查詢( 「SELECT * FROM some_table」)或死亡($ mysqli->錯誤);'可是使用'死() 「因爲它突然退出整個劇本,所以這是一種不好的做法。相反'if(!$ result)//做一些錯誤處理'。 –