无法从数据库表中获取数据.... 500错误

时间:2017-09-16 23:01:00

标签: php mysqli

我已尝试过大量不同版本的代码,来自不同的网站。我完全搞不清楚为什么这不起作用。即使复制和粘贴代码也无法正常工作。我对PHP和MySQL相当新,但已经做了大量的HTML,CSS和JS,所以我不是一般的代码新手,但我还是初学者

这就是我所拥有的。我正在尝试从数据库中获取数据,以将其与最后一页中的用户输入数据进行比较(实质上是登录事物)。我还没有进入比较部分,因为我无法获取信息,我得到的是chrome的调试窗口中的500错误代码。我完全无能为力,因为我读到的一切都说完全没问题。

我从这里完全疲惫不堪,令我感到沮丧,无所不能。希望有人可以提供帮助。为了记录,它连接得很好,我尝试使用$ sql变量,一切都崩溃了。我在Godaddy托管上这样做,如果这意味着什么。

<?php
$servername = "localhost";
$username = "joemama198";
$pass = "Password";
$dbname = "EmployeeTimesheet";

// Create connection
$conn = mysqli_conect($servername, $username, $pass, $dbname);
// Check connection
if (mysqli_connect_errno) {
    echo "Failed to connect to MySQL: " . mysqi_connect_error();
}

$sql = 'SELECT Name FROM Employee List'; 
$result = mysqli_query($conn, $sql);

     if (mysqli_num_rows($result) > 0) {
        while($row = mysqli_fetch_assoc($result)) {
           echo "Name: " . $row["Name"]. "<br>";
        }
     } else {
        echo "0 results";
     }
     mysqli_close($conn);

&GT;

3 个答案:

答案 0 :(得分:1)

这里有麻烦:

// Create connection
$conn = mysqli_conect($servername, $username, $pass, $dbname);
// Check connection
if (mysqli_connect_errno) {
    echo "Failed to connect to MySQL: " . mysqi_connect_error();
}

这里有三个问题:

  1. mysqli_conect()代替mysqli_connect()(请注意n中的双connect
  2. mysqli_connect_errno应该是一个功能:mysqli_connect_errno()
  3. mysqi_connect_error()代替mysqli_connect_error()(请注意l中的mysqli
  4. 您收到500错误的原因是您没有启用调试。请将以下内容添加到脚本的顶部:

    ini_set('display_errors', 'on');
    error_reporting(E_ALL);
    

    这应该可以防止出现不太有用的500错误,而应该显示实际的 原因 以解决任何其他错误。

    可能会成为问题:

    $result = mysqli_query($conn, $sql);
    
    if (mysqli_num_rows($result) > 0) {
    

    如果查询失败,$result将为false,您将在mysqli_num_rows()来电时收到错误消息。你应该在那里添加一个支票:

    $result = mysqli_query($conn, $sql);
    
    if (!$result) {
        die('Query failed because: ' . mysqli_error($conn));
    }
    
    if (mysqli_num_rows($result) > 0) {
    

答案 1 :(得分:0)

select语句中数据库表的名称中有一个空格。如果是这样的话,试试:

$sql = 'SELECT Name FROM `Employee List`'; 

答案 2 :(得分:0)

我认为你在查询中留下了空白。

$sql = 'SELECT Name FROM Employee List';

更改为

$sql = "SELECT `Name` FROM `EmployeeList`";