我希望以下代码在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~,ç");
答案 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错误是什么?