在mysql/php中为临时表获取持久数据库连接
我有一个logger类,它在多个PHP页面上分别实例化 构造函数执行以下操作在mysql/php中为临时表获取持久数据库连接,php,mysql,Php,Mysql,我有一个logger类,它在多个PHP页面上分别实例化 构造函数执行以下操作 [ PDO::ATTR_EMULATE_PREPARES => false, PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, PDO::ATTR_PERSISTENT =>
[
PDO::ATTR_EMULATE_PREPARES => false,
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_PERSISTENT => true,
];
因此,理论上,logger类的每个实例都共享一个到数据库的相同的、单独的连接。每个实例都会创建一个临时表,该表应该创建一次(并在后续尝试中出错,确实如此)。每个实例都将记录插入到同一个临时表中
但这不是我看到的行为。有时,最近(在同一个PHP会话中)创建的记录会消失。有时,它们会再次出现。只有最后添加的记录才是唯一可靠显示的记录
似乎每次创建logger类时,我都会得到一个新的数据库连接实例,或者有时会得到一个旧的连接。它从未可靠地连接到初始连接。是什么导致了这种情况?我将数据库的PDO变量设置为静态属性,以进一步确保每次创建类时不会获得到数据库的新连接,即使这样也没有什么区别。表中的数据仍在不断变化。你解决了这个问题吗?