2012-05-28 105 views
2

我被告知停止使用MySQL並且現在正在學習MySQLi。然而,我遇到了一個問題,使用讀取數組,並不知道我做錯了什麼。將Mysql轉換爲Mysqli

//Connect to db 
include "mysqli_connect.php"; 

// Construct our join query 
$sql = "SELECT userID, username, lastlogin FROM users"; 

//Crate results 
$result = mysqli_query($link, $sql); 

// Print out the contents of each row into a table 
$row = mysqli_fetch_array($result, MYSQLI_BOTH); 

// Free result set 
mysqli_free_result($result); 

// Close connection 
mysqli_close($link); 


消息我看到:通過 TCP/IP
  • 警告db413417616.db.1and1.com:mysqli_query()[function.mysqli

    • [連接成功]主機信息 - 查詢]:無法取得 mysqli在/homepages/9/d413002686/htdocs/maintenance/testsession.php on line 9
    • 警告:mysqli_fetch_array()期望參數ER 1是 mysqli_result,在 /homepages/9/d413002686/htdocs/maintenance/testsession.php空給定在線路12
    • 警告:mysqli_free_result()預計參數1是 mysqli_result,在 /主頁空給出/9/d413002686/htdocs/maintenance/testsession.php on line 15
    • 警告:mysqli_close()[function.mysqli-close]:無法獲取 mysqli在/ homepages/9/d413002686/htdocs/maintenance/testsession .php on line 18()

    我用這個爲mysqli_connect.php:http://www.php.net/manual/en/mysqli.construct.php

    <?php 
    // $link (host, username, password, database) 
    $link = mysqli_connect('host', 'username', 'password', 'database'); 
    
    //If connection is successful, otherwise show error message. 
    if (!$link) { 
        die('[Connect Fail] Error: (' . mysqli_connect_errno() . ') ' 
          . mysqli_connect_error()); 
    } 
    // Echo success message 
    echo '[Connection Successful] Host info: ' . mysqli_get_host_info($link) . "\n"; 
    
    // Close the link 
    mysqli_close($link); 
    ?> 
    
  • +1

    你看到一個錯誤,或者是'$ row'而不是你認爲它應該是什麼?你能顯示mysqli_connect.php的內容嗎(刪除了憑證)? – grossvogel

    +1

    您尚未針對查詢失敗進行測試。 'if(!$ result)echo mysqli_error();' –

    +1

    +1做正確的事情:) – vascowhite

    回答

    2

    這條線在你的包含文件應該被刪除:

    // Close the link 
    mysqli_close($link); 
    

    您要關閉$link,又名您連接到數據庫,然後嘗試在查詢中使用它。您只需在完成所有工作後關閉它。

    +1

    謝謝!我很熟悉手冊。 – taeja87