[英]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
Serials
(SerialKey
,Active
,ActivatedOn
,ValidTo
,Paid
)VALUES(:串行, '否',NULL,NULL, '否');,阵列([串行] =>在[PATH_TO_PUBLIC_HTMLpublic_html / Core / Database / Handler.php:45]调用Core \\ Database \\ Handler-> Query(INSERT INTOSerials
(SerialKey
,Active
,ActivatedOn
,ValidTo
,Paid
)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 INTOSerials
(SerialKey
,Active
,ActivatedOn
,ValidTo
,Paid
)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 INTOSerials
(SerialKey
,Active
,ActivatedOn
,ValidTo
,Paid
)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
错误
我学到了什么?
解
1不要在index.php上调试
2将以下代码添加到您的html中
<link rel="shortcut icon" href="#" />
对不起,我的英语不好
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.