2017-04-19 178 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