2014-01-06 51 views
0

我試圖在亞馬遜上的虛擬機上設置PHP和mySQL。我試着按照這些指示,並沒有得到任何錯誤信息。一切似乎都很好。我做了一個測試PHP文件,它像一個魅力。然後,我嘗試從我新建立的數據庫中取回某些東西...然後我得到一個空白頁。我的PHP頁面沒有從MySQL數據庫中檢索任何東西

<?php 
$conn = new mysqli('localhost', '[DB NAME]_user', '[USER PASSWORD]', '[DB NAME]', ''); 
$result = $conn->query("SELECT message FROM test;"); 
$row = $result->fetch_assoc(); 
echo $row['message']; 
?> 

關於我能做什麼來檢查它出錯的任何想法?任何我應該檢查在終端,看看數據庫是否真的返回任何值?

任何幫助表示讚賞。

附加信息:

我試圖凱斯圖蒂斯的建議。

<?php 
error_reporting(E_ALL); 
ini_set("display_errors", 1); 

$conn = new mysqli('localhost', '[USER]', '[USER PASSWORD]', '[DB NAME]'); 
if ($conn->connect_errno) { 
die($conn->connect_error); 
} 

if (!($result = $conn->query("SELECT message FROM test"))) { 
die($conn->error); 
} 

while ($row = $result->fetch_assoc()) { 
print_r($row['message']); 
} 

它返回從$行[ '消息']字符串。沒有錯誤消息。

然後我看到

$conn = new mysqli('localhost', '[USER]', '[USER PASSWORD]', '[DB NAME]'); 

是不一樣的我最初

$conn = new mysqli('localhost', '[DB NAME]_user', '[USER PASSWORD]', '[DB NAME]', ''); 

所以我改變了行我最初一個與「到底」。現在我收到一條錯誤消息:

警告:mysqli :: mysqli()期望參數5很長,字符串在/var/www/html/index.php在第5行給出警告:mysqli :: query ():無法在第10行的/var/www/html/index.php中獲取mysqli警告:main():無法在第11行的/var/www/html/index.php中獲取mysqli

爲什麼?

+0

是你的嗎?你的數據庫裏有數據嗎? – Rugal

+0

你可以嘗試做很多事情來獲得某種類型的錯誤消息,即:'error_reporting(E_ALL); ini_set(「display_errors」,1);' 和最後但並非最不重要的嘗試 'echo $ conn-> error;' 檢查mysql是否顯示任何消息,或者您的mysql只是有問題 –

+1

因爲該參數是本質上是一個MySQL端口,如果留空,它將被默認(通常爲3306)替換,因此可以使用3306(或者任何你的mysql端口),或者將其保留爲空。只要記住''與空/空白不同,你所做的就是有效地試圖明確地將它設置爲''這是錯誤的。 –

回答

1

嘗試是這樣的:

<?php 
error_reporting(E_ALL); 
ini_set("display_errors", 1); 

$conn = new mysqli('localhost', '[USER]', '[USER PASSWORD]', '[DB NAME]'); 
if ($conn->connect_errno) { 
    die($conn->connect_error); 
} 

if (!($result = $conn->query("SELECT message FROM test"))) { 
    die($conn->error); 
} 

while ($row = $result->fetch_assoc()) { 
    print_r($row['message']); 
} 

這種方式,你應該看到在什麼點失敗如果它根本不起作用

+0

使用此代碼,它確實從($ row ['message'])返回值。沒有錯誤信息,只是我放在那裏的字符串恰好是「Bajskorv!」。所以現在我想知道爲什麼最初的PHP代碼給了我一個空白的屏幕? (詳情請見初始文章)。謝謝分配! – Paolo

0

在連接檢查錯誤:

$conn = new mysqli('localhost', '[DB NAME]_user', '[USER PASSWORD]', '[DB NAME]', ''); 
if (!$conn) { 
     die('Could not connect: ' . mysql_error()); 
} 

嘗試選擇DB:

$conn->select_db("database_name"); 
+0

他在MySQLi構造函數中選擇數據庫,因此沒有必要再次檢查它 –

相關問題