-1

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 に変換する必要があることです。

4

2 に答える 2

0

あなたが書いたコードで:

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

ドキュメントによると、execute はメソッドのに呼び出す必要があります。bind_result

さらに、 を呼び出すと、配列ではなく、データfetchにアクセスします。$r_book_id$r_book_title

よりユーザーフレンドリーなインターフェースが必要な場合は、PDO に切り替えてください。単純なクエリまたは準備されたクエリを使用するかどうかに応じて、より簡単で、シンタックスが異なりません。

編集:配列にフェッチしたいので、ここにトリックがあります:

$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
于 2013-02-20T14:58:25.037 に答える
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;
于 2013-02-20T14:29:05.747 に答える