2013-02-20 113 views
-1

我需要將以下內容轉換爲使用mysqli,但無法找到示例。有人可以很好地幫忙嗎?將mysql轉換爲需要的mysqli幫助

$books = array(); 

     $books_query = mysql_query("SELECT * FROM book"); 

     while ($books_row = mysql_fetch_assoc($books_query)) { 
      $books[] = array(
      'id'   => $books_row['book_id'], 
      'book_title' => $books_row['book_title'] 
      ); 
     } 
    return $books; 

編輯:

我編寫;

$stmt=conn->stmt_init(); 

if($stmt->prepare("SELECT * FROM book")) 
{ 
    $stmt->execute(); 
    $stmt->bind_result($r_book_id, $r_book_title); 

    while ($stmt->fetch()) 
    { 
     .... 
    }; 
} 

但只是不知何故無法正常工作。

我的問題是我剛剛從.NET MS SQL轉換到MySQL,需要到MySQL轉換爲mysqli的

+0

PGallagher,感謝編輯我的問題。我只是發現無奈和恐慌,甚至沒有時間學習如何發佈問題到這個論壇。讚賞。 – user6542 2013-02-20 15:10:16

回答

0

在你的代碼中寫道:

$stmt->execute(); 
$stmt->bind_result($r_book_id, $r_book_title); 

根據該文件,實行已被的bind_result方法之後調用

而且,一旦您調用fetch,您將訪問數據,其中$r_book_id$r_book_title不帶數組。

如果您想要更友好的用戶界面,請切換到PDO。這很容易,並沒有不同的synthax取決於你使用簡單或準備查詢。

編輯:只要你想提取到一個數組,這裏是招:

$stmt->bind_result($r['book_id'], $r['book_title']); 
$stmt->execute(); 
while($stmt->fetch()){ 
    $totalResult[] = $r;//$r will contain a row as an array 
} 
//total result is an array with the whole result set 
+0

非常感謝。所以我需要搜索如何將結果獲取到數組中,因爲php部分需要一個數組。我的問題是有各種類似的功能,例如fetch(),fetch_assoc()等,對於新手來說,要經歷從.net MS SQL到php mysql,從mysql到mysqli的過渡,這是一個有點挑戰。不管怎麼說,還是要謝謝你。 – user6542 2013-02-20 15:22:30

+0

好吧,我會給你一個片段: – artragis 2013-02-20 15:23:54

+0

另外,有沒有關於PDO的好教程?我記得我在搜索時看到過這個地方,但我只是覺得我不能將它轉換爲另一種新技術。 – user6542 2013-02-20 15:26:52

0

由於意見提到,最好我們會看到,到目前爲止你已經嘗試了什麼?

你是主要資源;

http://www.php.net/manual/en/mysqli.quickstart.php

然而,這個頁面提供了一個很好的教程;

http://codular.com/php-mysqli

爲您的代碼;

$books = array(); 

$db = new mysqli('localhost', 'user', 'pass', 'demo'); 

if($db->connect_errno > 0){ 
    die('Unable to connect to database [' . $db->connect_error . ']'); 
} 

$sql = "SELECT * FROM book" 

if(!$result = $db->query($sql)){ 
    die('There was an error running the query [' . $db->error . ']'); 
} 

while($row = $result->fetch_assoc()){ 
      $books[] = array(
      'id'   => $books_row['book_id'], 
      'book_title' => $books_row['book_title'] 
      ); 
} 

return $books; 
+0

感謝您的回覆,但我並不像偷代碼那樣懶惰。我已經編碼$ stmt = conn-> stmt_init(); if($ stmt-> prepare(「SELECT * FROM book」)){$ stmt-> execute(); $ stmt-> bind_result($ r_book_id,$ r_book_title); while($ stmt-> fetch()){....};但只是不知何故無法正常工作。我的問題是我只是從.net MS SQL切換到MySQL,並需要將MySQL轉換爲mysqli。 – user6542 2013-02-20 14:39:25