2012-12-12 77 views
0

我對MySQL數據庫有一個非常標準的調用,出於某種原因,我無法讓代碼工作。下面是我有:無法顯示來自MySQL表的數據

$mysqli = mysqli_connect("localhost","username","password"); 
if (!$mysqli) 
    { 
    die('Could not connect: ' . mysqli_error($mysqli)); 
    } 
session_start(); 
$sql = "SELECT * FROM jobs ORDER BY id DESC"; 
$result = $mysqli->query($sql); 
$num_rows = mysqli_num_rows($result); 

現在,第一次,我知道這是正確連接,因爲我沒有得到模方法再加上我在裏面添加了其他條件之前,並簽出。隨後,頁面顯示,但我得到的錯誤:

Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in blablabla/index.php on line 11 

Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in blablabla/index.php on line 12 

我仔細檢查了我的數據庫,並有一個叫做就業機會,「ID」(它的主行)的行的表。讓我困惑的是這是我從我建立的另一個網站上直接複製和粘貼的代碼,由於某些原因,代碼在這個代碼上不起作用(我明顯複製並粘貼了它,然後相應地更改了表名和行)。

我看到的錯誤,並試圖:

$num_rows = $mysqli_result->num_rows; 
$row_array = $mysqli_result->fetch_array; 

和固定的錯誤,但沒有導致數據被傳遞(因爲很明顯,$ mysqli_result沒有值)。我不知道爲什麼這個錯誤是要求的(這是從另一個網站的MySQL或PHP版本的差異)?

有人能幫我找出問題嗎?非常感謝。對不起,如果這是超級簡單的,我忽略了,我已經有一段時間了。

+2

你不檢查mysqli_query'的'的返回值。它可以返回布爾值而不是語句句柄。 – Charles

+0

有一件事,把你的'session_start();'放在mysqli_connect的上面,因爲如果發生錯誤它會產生輸出。這會導致session_start失敗。 – Lenin

+0

您確定要連接到本地主機上正確的數據庫嗎?我沒有看到上面的代碼片段中選擇數據庫的位置? – schtever

回答

5

你沒有選擇的數據庫

$mysqli = mysqli_connect("localhost","username","password","database"); 
+0

啊,看看那個。這正是發生的事情。這是我沒有複製並試圖從頭開始的一部分。感謝你及時的答覆! – MillerMedia

2

問題是你還沒有選擇數據庫。

使用此代碼選擇數據庫。

$mysqli = mysqli_connect("localhost","username","password"); 
mysqli_select_db("db_name",$mysqli); 

你必須選擇數據庫才能激發mysql查詢,否則會給你錯誤。

1

我相信schtever是正確的,我不認爲你選擇的數據庫。它不在代碼片段中,如果你在線搜索,你會看到其他人有類似的錯誤,這是因爲數據庫沒有被選中。如果您在檢查其他任何內容之前選擇了數據庫,請告訴我們。謝謝。

1

試試這個:

session_start(); 
$mysqli = new mysqli(DB_HOST, DB_USERNAME, DB_PASSWORD, DB_NAME); 
     if ($mysqli->connect_errno) 
     { 
      echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error; 
      $mysqli->close(); 
     } 
      $query ="SELECT * FROM jobs ORDER BY id DESC"; 
      $values = $mysqli->query($query); 
       if($values->num_rows != 0) 
        { 
         while($row = $values->fetch_assoc()) 
         { 
          //your results echo here 
         } 
        } 
        else 
         { 
          //if no results say so here 
         }