PHP - MySQL没有关于SQL错误的错误消息

时间:2012-02-18 15:36:11

标签: php mysql

我希望以下代码在PHP中产生错误,但它运行时没有任何错误迹象。

<?php

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

$link = mysql_connect('localhost','JUST_ANY_TEXT EVEN WITH SPACES', '');

mysql_select_db('JUST_ANY_TEXT EVEN WITH SPACES', $link);

echo 'LINK RESULT = '.($link?'OK':'ERROR'); //THIS PRINTS: LINK RESULT = OK

echo mysql_query("SELECT INVALID_TEXT FROM TABLE_THAT_DOES_NOT_EXISTS_ANYWHERE PLUS ANY TEXT 3[t3p36g333 3 4638343´tp4oy0i9u54t-9u´089hwpjoeg~,ç");

2 个答案:

答案 0 :(得分:2)

这是按预期工作的。如果您查看official documentation,您将看到大多数功能都有返回值。您应该检查返回值以确保一切正常。

此外,这些遗留mysql_*功能已经过时了。我建议改为使用PDO package

指出代码中的即时错误。您应该像以下一样使用它:

$success = mysql_select_db('JUST_ANY_TEXT EVEN WITH SPACES', $link);
if (!$success)
    die ('Error selecting the database!');

答案 1 :(得分:1)

对于mysql_query(),您必须检查mysql_query()的结果并使用mysql_error()来获取MySQL错误消息:

$query  = "invalid query";
$result = mysql_query($query) or trigger_error(mysql_error()." ".$query);

但是,如果凭据错误,mysql_connect()应该引发错误 您确定可以看到发生错误吗?无论PHP错误是什么?