2017-04-19 370 views
0

我想將mysql數據庫的數據顯示到我的html頁面,這是迄今爲止我的代碼。解析非英文字符時出錯

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

$servername = "localhost"; 
$username = "root"; 
$password = "hello"; 
$dbname = "agita"; 

// Create connection 
$conn = mysqli_connect($servername, $username, $password, $dbname); 
// Check connection 
if (!$conn) { 
    die("Connection failed: " . mysqli_connect_error()); 
} 

$sql = "SELECT * FROM test"; 
$result = mysqli_query($conn, $sql); 

if (mysqli_num_rows($result) > 0) { 
    // output data of each row 
    while($row = mysqli_fetch_assoc($result)) { 
     echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>"; 
    } 
} else { 
    echo "0 results"; 
} 

mysqli_close($conn); 
?> 

MySQL服務器啓動並運行,並有我創建了由下面提到的用戶名和密碼訪問的數據庫agita。然而,PHP也沒有告訴我什麼是錯誤,也沒有解析。它解析到第21行,並在「>」符號之後顯示爲HTML中的文本。它不包含大於號。

我在做什麼錯,我如何使PHP顯示錯誤,以便我不會重複同樣的錯誤。

P.S.I通過從計算機遠程訪問它並在bash中編碼,從而在Linux環境中工作。

更新1:嘿傢伙我有一個錯誤地沒有注意到,該文件的擴展名不是PHP。現在,因爲我已經把我得到這個在我的HTML「警告:mysqli_num_rows()期望參數1爲mysqli_result,布爾在/var/www/html/index.php在第21行0結果」。什麼做錯了,以獲得該錯誤?

更新2:嘿傢伙我遇到了一個問題,現在解析非英文字符。我設置mysqli字符集「UTF-8」的代碼

mysqli_set_charset($result,"UTF8"); 

但它似乎並沒有工作。

+0

如果你檢查頁面,你看到的一切嗎? – Qirel

+2

如果您查看源代碼,您是否看到您的PHP?你有安裝PHP嗎?該文件是一個'.php'嗎? – chris85

+1

如果它是一個分析錯誤,那麼你的'ini_set()'也不會被讀取(因爲PHP不能解析和讀取文件)。檢查錯誤日誌,看看你是否有任何錯誤。 –

回答

2

如何讓我的PHP錯誤顯示...

tail -f /var/logs/nginx/error.log會顯示你的PHP錯誤,而你正試圖運行該腳本。當然,我假設你使用nginx,日誌文件的路徑可能會有所不同,具體取決於你使用的服務器和你的Linux的風格,但/var/log是一個開始尋找的好地方;相應地調整路徑。

+1

更好地問PHP是否存儲比搜索文件系統,http://stackoverflow.com/questions/8955411/find-out-the-error-logs-path。 – chris85

+0

@ chris85的確如此。如果你沒有建立盒子,那麼誰知道日誌的保存位置。我已經看到了一些好奇的設置...... – Chase