对不起我的英语。 我执行了一个唯一查询 INSERT,但在数据库中创建了许多相等的记录。 我有一个带有模式单例和注册表的 php cms mvc。 当我调用 Controller 时,会加载所有核心模型,包括管理数据库的模型。
我写了一段代码:
class DB extends global_core
{
private $PDO;
private $result;
public function __construct()
{
parent::__construct();
}
public function query($query)
{
$this->result = $this->PDO->prepare($query);
$this->result->execute();
return $this->result;
}
}
在另一个模型中运行这个方法:
class Stats extends global_core
{
private $stored_agent = false;
public function __construct()
{
parent::__construct();
if (!$this->stored_agent)
$this->saveAgent();
}
public function saveAgent()
{
if ($this->stored_agent) return;
$this->DB->query('INSERT ...');
echo 'ok';
$this->stored_agent = true;
}
}
现在在我的数据库中创建了“n”条相等的记录,但在视频中正确打印的只是“ok”而不是“okokokokokokok”。
为什么?
但是,如果我从当前 Controller 调用该方法,我正确地只得到一条新记录。
class page extends controller
{
public function __construct()
{
parent::__construct();
$this->loadInfo();
}
protected function loadInfo()
{
$this->Stats->saveAgent();
}
}
所以它正常工作...
问题出在哪里?
最佳答案
已解决 是错误配置 url 重写的问题。 召回服务器上不存在的图像,被指控再次实例化核心的站点的错误页面...
<img src="file not present" >
关于php - PDO - PHP 查询在没有调用的情况下再次执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28209762/