2014-06-19 89 views
0

mysql_connect会给我一个错误报告。 mysqli_connect给我一个空白页面。没有错误报告来自mysqli_connect

确实给我一个错误报告

$mysql_con = mysql_connect($mysql_host, $mysql_user, $mysql_pass, $mysql_table); 
if(!$mysql_con) { 
    die("Some error occurred during connection " . mysql_error($mysql_con)); 
} 

但这给我一个错误报告:

$mysql_con = mysqli_connect($mysql_host, $mysql_user, $mysql_pass, $mysql_table); 
if(!$mysql_con) { 
    die("Some error occurred during connection " . mysqli_error($mysql_con)); 
} 

也不该

$mysql_con = mysql_connect($mysql_host, $mysql_user, $mysql_pass, $mysql_table) 
or die("Some error occurred during connection " . mysqli_error($mysql_con)); 

我有尝试两个和萨我的事情:空白页

error_reporting(E_ALL); 
error_reporting(-1); 

当我说空白页我的意思是什么都没有显示。没有我的HTML或CSS或任何东西。它完全停止脚本。即使出现错误,mysql_connect似乎也能正常工作并完全加载页面。

什么时候做本地(本地主机),mysqli_connect工作得很好,并在需要时给出错误。 DB im连接到的是同一个,唯一的区别在于上面的脚本Im让它从远程服务器执行以访问我的本地系统上的数据库。即使它不能以任何理由访问它,为什么它会给我一个空白的屏幕?


编辑

它神奇地工作,妥善给我的错误,现在使用下面的代码。

$con = mysqli_connect($mysql_host, $mysql_user, $mysql_pass, $mysql_db); 
if(mysqli_connect_errno()) { 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
} 
+1

是'display_errors'在'php.ini'设置为 “开”?这也可能会产生附加效果。尝试添加'ini_set('display_errors',1);'同时确保'php.ini'中的display_errors设置为“on”。 –

+1

供参考:第四个参数是数据库名称***不是表名。参考:['mysqli_connect()'](http://www.php.net/manual/en/mysqli.construct.php)... – War10ck

+0

@ Fred -ii-他们不会被设置为on if mysql_connect吐出一个错误?还是他们有单独的配置?我可以的时候检查一下。 @ War10ck是的我知道,我试图让错误显示。 –

回答

3

而是附加mysqli_error到die语句,检查错误,像这样的连接后:

$mysql_con = mysqli_connect($mysql_host, $mysql_user, $mysql_pass, $mysql_table); 
if($mysql_con->connect_error) { 
    die($mysql_con->connect_error); 
} 
+0

'::'仅用于访问静态属性。你需要使用' - >'来访问'connect_error'。 –

+0

糟糕!有一段时间,这是正确的。 –

+0

将此与'mysqli_connect'一起使用,即使给出错误的密码也不会导致错误。加载页面(没有空白屏幕)但没有错误报告。与'mysql_connect'一样。 –