2013-02-20 2 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; 

Edit:

Я закодирован;

$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

ответ

0

В коде Вы писали:

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

Согласно документации, выполнение уже будет называться после метод bind_result.

Более того, как только вы позвонили fetch, вы получите доступ к своим данным с помощью $r_book_id и $r_book_title не с массивом.

Если вам нужен более удобный интерфейс, переключитесь на PDO. Это проще, и у него нет разного синтакса, в зависимости от вас, с помощью простых или подготовленных запросов.

EDIT:, как вы хотите, чтобы принести в массив, вот трюк:

$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

+0

ok, я дам вам фрагмент для этого: – artragis

+0

Кроме того, есть ли хороший учебник по PDO? Я помню, что видел это где-то во время поиска, но я просто подумал, что не могу позволить себе переключиться на другую новую технологию. – user6542

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

Смежные вопросы