2014-10-09 47 views
-2

爲什麼不正常的的mysql_query或後做一個回聲?的mysql_query或(爲什麼沒有在這裏回聲?)

所以mysql_query or die ("error")是合法的,但爲什麼mysql_query or echo ("error")不是?

是否有任何其他可能性在不退出整個下面的代碼的情況下打印文本(或者填充變量)?

+2

1.不使用mysql,但使用mysqli或pdo 2.需要打印哪種文本?你不能在死前或死亡之前打印它? – trainoasis 2014-10-09 13:22:19

+0

小心OR語句。請記住,你應該檢查,而如果查詢完成,而不是給它一個機會,不這樣做(也避免mysql_ *,因爲它是不建議使用) – briosheje 2014-10-09 13:23:28

回答

2

or內,您可以使用; die("error")print("error")。如果你做了如下的事情會更好,因爲它可以讓你;

  • 登錄錯誤
  • 報告錯誤給您的開發
  • 適當地殺死頁面(可能重定向到一個頁面建立處理狀態代碼500)

$obj = mysql_query("select * from table", $link); 
if(mysql_error($link)) { 
    echo "Error"; 
    //Log the error? 
    die; 
} 

請注意;

的mysql_擴展棄用爲PHP 5.5.0,並且不建議用於編寫新的代碼,因爲它會在將來被移除。相反,應使用mysqliPDO_MySQL擴展名。請參閱MySQL API Overview以獲得進一步幫助,同時選擇MySQL API。

+0

通常從MySQL錯誤記錄在取決於error.log中您的服務器如何設置而無需採取額外步驟。 YMMV – 2014-10-09 13:37:52

+0

@JayBlanchard哪個error.log?我從來沒有見過/聽說過/經歷過這個。 YMMV的含義是什麼? :) – 2014-10-09 13:41:46

+0

如果您在Linux機器上,請查看服務器的錯誤日誌。在許多Linux發行版中,路徑是/var/log/apache/error.log。 YMMV =='您的里程可能會有所不同' – 2014-10-09 13:44:36

-1

簡單運行mysql_query,然後你可以訪問mysql_errnomysql_error。 並用mysqli函數代替mysql_函數。

1

我知道你已經有很好的答案,但我做的事情是這樣的(除了我現在使用PDO,也應你):

function error_catcher($error) { 
    // Any code you want here, including echo, logging, emailing of error, and so on. 
} 

$sql=mysql_query("select * from table") or die(error_catcher(mysql_error())); 

請注意:

該mysql_擴展棄用爲PHP 5.5.0,並且不建議用於編寫新的代碼,因爲它會在將來被移除。相反,應使用mysqliPDO_MySQL擴展名。請參閱MySQL API Overview以獲得進一步幫助,同時選擇MySQL API。

相關問題