2017-09-16 149 views
0

我已经尝试了吨代码的不同版本,从吨不同的网站。我完全困惑为什么这不起作用。即使复制和粘贴的代码不会工作。我对PHP和MySQL相当陌生,但已经做了相当数量的HTML,CSS和JS,所以我不是一般的新代码,但我仍然是一个初学者。我正在尝试从数据库中获取数据,以便将其与最后一页中的用户输入数据(实质上是登录事物)进行比较。我甚至还没有得到比较部分,因为我无法获取信息,我所得到的只是chrome调试窗口中的500错误代码。我完全无能为力,因为我读过的一切都说这应该是完全正确的。无法从数据库表中获取数据.... 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); 

?>

+0

你能显示错误信息吗? –

+0

你在'$ sql'的FROM中使用了2个名字时,你的数据库名是什么? – Harish

+0

我的数据库是EmployeeTimesheet。我尝试访问的那个数据库中的表是EmployeeList –

回答

0

数据库表的SELECT语句的名称中有一个空格。如果这是试图:

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

修复了以及在phpMyAdmin中更改了我的数据库名称。仍然没有什么不幸的 –

0

我想你留在您的查询空白。

$sql = 'SELECT Name FROM Employee List'; 

变化

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

Upvoted,因为这是一个有效的点,并可能导致500错误,因为查询被认为是成功的。原来的查询是一个隐含的别名(与'SELECT \'Name \'FROM \'Employee \'AS \'List \''相同),如果没有名为“Employee”的表,则会失败。 – rickdenhaan

+0

呵呵@rickdenhaan理解。 –

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()(注意双nconnect
  2. mysqli_connect_errno应该是一个功能:mysqli_connect_errno()
  3. mysqi_connect_error()代替mysqli_connect_error()(注意lmysqli

原因你得到一个500错误是,你没有调试启用。请将下面的内容添加到您的脚本的顶部:

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

这应该防止不那么有用的500错误出现,而应显示实际原因任何其他错误。

可能是一个问题在这里:如果查询失败

$result = mysqli_query($conn, $sql); 

if (mysqli_num_rows($result) > 0) { 

$resultfalse,你会得到关于mysqli_num_rows()调用错误。你应该添加一个检查:

$result = mysqli_query($conn, $sql); 

if (!$result) { 
    die('Query failed because: ' . mysqli_error($conn)); 
} 

if (mysqli_num_rows($result) > 0) { 
+0

谢谢!!!!我终于让我的代码工作。此外,调试的事情是美好的,500错误是超级无益的。 我复制并粘贴了所有拼写错误的代码。我将不得不经常拼写检查。 这一直使我疯狂,非常感谢你 –

+0

很高兴帮助:-)请记住,下次当你的浏览器显示500错误时,你的服务器日志应该包含实际的错误。不知道GoDaddy在哪里存储这些内容,或者它们甚至可以在那里存储。 – rickdenhaan