2015-09-20 31 views
0

我只是试图在php中做一个简单的事情,我失败了,非常不知道为什么。 这是我的代码:Php MySql白页

<?php 

$db_dbname = "name1"; 
$db_hostname = "hostname"; 
$db_username = "lol"; 
$db_password = "thisismypassword"; 

try 
{ 
    $conn = new PDO('mysql:dbname='.$db_dbname.';host='.$db_hostname.'', $db_username, $db_password); 
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

$obterdados = $dbh->prepare("SELECT * FROM tablename ORDER BY id ASC"); 
$obterdados->execute(); 
$data= $obterdados->fetchAll(); 

} 
catch(PDOException $e) { 
echo "Error: " . $e->getMessage(); 
} 

?> 

后,当我打开网页,不执行代码(HTML),波纹管和页面是全白。 如果我删除:

$obterdados = $dbh->prepare("SELECT * FROM tablename ORDER BY id ASC"); 
$obterdados->execute(); 
$data= $obterdados->fetchAll(); 

它工作normaly

回答

4

您使用您所查询的$conn为您的连接和$dbh

错误报告会抛出一个未定义的dbh通知。

这就是为什么第一个没有给你带来任何东西,直到你开始查询的时候。

error reporting添加到您的文件的顶部,这将有助于发现错误。

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

// rest of your code 

旁注:显示错误应该只在分期完成,并且从不生产。

+0

工作就像一个魅力。谢谢! – PedroBarbosa

+0

@PedroBarbosa很高兴听到它。欢呼 –

+1

@PedroBarbosa将其标记为已解决。你不必这样做,但它通知所有人已找到解决方案。否则,其他人可能想发布更多答案。以下是http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work –