簡體   English   中英

PHP防止在執行完整代碼之前死亡

[英]PHP prevent die before executing full code

我有下面的代碼,最后我將用戶重定向,但有時似乎輸出變量未設置或插入查詢未執行。 因此,有什么方法可以讓我等待所有操作完成,然后執行die語句。

謝謝

$diff=levenshtein(strtolower($str1),strtolower($str2));
        if($diff<=2)
            {
            $output="ok";
            }
         else
            {
            $output="Not ok";
            }

$query="INSERT INTO `table` (`sn`, `output`) VALUES (NULL,'$output')";
$result=mysqli_query($con,$query);

header('Location: http://www.domain.com/');
die;

無效的原因可能有多種。

第一個也是最明顯的一點是,足以在頁面上僅顯示一個簡單警告(未設置變量X),這將破壞您的header()命令。 可以說標頭已經設置好了。

第二個問題是有時服務器忙於答復其他請求,並且$ con變量將是布爾型false而不是可靠的數據庫連接器,因此您的查詢也可能因此而失敗。

我在現實生活中遇到了兩種情況,並通過確保在使用每個變量之前都已對其進行設置並檢查查詢是否已成功執行來解決它們。

您可以使用以下代碼檢查是否設置了變量:

if (!isset($variable)) $variable = "set me here";

您可以通過添加以下命令來檢查查詢是否成功執行:

if (!$result) {
    //do something here in case your query failed
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM