簡體   English   中英

PDO-查詢執行兩次?

[英]PDO - Query executed twice?

我的解決方案

我在index.php上調試函數時,沒有注意到瀏覽器正在搜索favicon.icon。 當前,如果找不到請求的文件,我的路由器會將用戶發送到index.php,這會導致seccond觸發。

您可以輕松找到此@您是網站訪問日志!

*對不起我的語法,我希望它可讀。

話題

我創建了一個小的數據庫腳本,只有一件事我無法解決。 當我執行插入查詢時,它將執行兩次。 值是diffrent(值= openssl_random_pseudo_bytes)。

    private function __init($Query = '', $Params = NULL){
    if($this->__getStatus() === false){
        $this->__createConnection();
    }
    $this->__PQuery = $this->__Database->prepare($Query);
        foreach($Params as $param => $value){
            $dataType = PDO::PARAM_STR;
            switch ($value){
                case is_int($value):
                     $dataType = PDO::PARAM_INT;
                break;
                case is_bool($value):
                    $dataType = PDO::PARAM_BOOL;
                break;
                case is_null($value):
                    $dataType = PDO::PARAM_NULL;
                break;
        }
    $this->__PQuery->bindValue($param, $value, $dataType);
    }
    $this->__PQuery->execute();
}

函數調用:

$this->__database->Query("INSERT INTO `Serials` (`SerialKey`, `Active`, `ActivatedOn`, `ValidTo`, `Paid`) VALUES (:Serial, 'no', NULL, NULL, 'no');", ['Serial' => openssl_random_pseudo_bytes(10)]);

(查詢將其發送到__init)

你們能給我個主意嗎? 我現在搜索大約4個小時。

執行前回溯

芯\\數據庫\\處理程序- > __初始化(INSERT INTO SerialsSerialKeyActiveActivatedOnValidToPaid )VALUES(:串行, '否',NULL,NULL, '否');,陣列([串行] =>在[PATH_TO_PUBLIC_HTMLpublic_html / Core / Database / Handler.php:45]調用Core \\ Database \\ Handler-> Query(INSERT INTO SerialsSerialKeyActiveActivatedOnValidToPaid )VALUES(:Serial ,'no',NULL,NULL,'no');,數組([Serial] => n R))在[PATH_TO_PUBLIC_HTMLpublic_html / Core / serialManager / createSerial.php:17]處調用Core \\ serialManager \\在[PATH_TO_PUBLIC_HTMLpublic_html / Core / serialManager / createSerial.php:9]處調用createSerial-> __ storeToDB()在[PATH_TO_PUBLIC_HTMLpublic_html / Controllers / Website.php:6]處調用Core \\ serialManager \\ createSerial-> __ construct()。在[PATH_TO_PUBLIC_HTMLpublic_html / Core / Routing / Router.php:20]處調用的call_user_func_array(Array([0] =>網站對象(),[1] =>主頁),Array())調用了Core \\ Routing \\ Router-> __ construct( )在[PATH_TO_PUBLIC_HTMLp ublic_html / index.php:3]

執行后回溯

Core \\ Database \\ ValidTo > __ init(INSERT INTO SerialsSerialKeyActiveActivatedOnValidToPaid )VALUES(:Serial,'no',NULL,NULL,'no');,數組([Serial] => F (7。,。Kr。))在[PATH_TO_PUBLIC_HTMLpublic_html / Core / Database / Handler.php:45]處調用Core \\ Database \\ Handler-> Query(INSERT INTO SerialsSerialKeyActiveActivatedOnValidToPaid )VALUES(:在[PATH_TO_PUBLIC_HTMLpublic_html / Core / serialManager / createSerial.php:17]處調用的Serial,'no',NULL,NULL,'no');,數組([Serial] =>F 7。,。Kr ))在[PATH_TO_PUBLIC_HTMLpublic_html / Core / serialManager / createSerial.php:9]處調用serialManager \\ createSerial-> __ storeToDB()在[PATH_TO_PUBLIC_HTMLpublic_html / Controllers / Website.php:6]處調用Core \\ serialManager \\ createSerial-> __ construct()。 ()call_user_func_array(Array([0] => Website Object(),[1] => Home),Array())在[PATH_TO_PUBLIC_HTMLpublic_html / Core / Routing / Router.php:20]處調用在[PATH_TO_PUBLIC_HTMLpublic_中調用了__construct() html / index.php:3]

[注意]我的托管公司受到攻擊。

*對不起我的語法師,我已經盡力了。

問題原因

我的瀏覽器正在尋找favicon.ico,但它不存在。 如果文件/頁面不存在,則請求將路由到index.php

錯誤

  • 在index.php上調試
  • 缺少favicon.ico

我學到了什么?

  • 切勿在首頁上進行調試,原因如下。
  • 如果有兩個請求傳入(發出1個請求),可能是瀏覽器發送了第二個請求以查找favicon.ico(在我的情況下,如果頁面確實存在,請返回首頁)

1不要在index.php上調試

2將以下代碼添加到您的html中

<link rel="shortcut icon" href="#" />

對不起,我的英語不好

暫無
暫無

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

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