此错误随机出现。我可以写和读数据库文件,但有时不能工作,即使有相同的请求。
我试图只测试一个连接(以避免多个连接,认为这可能是问题所在),但也随机失败。
我检查了文件(Windows)的权限,一切正常(如果没有权限,我将无法写入文件)
以下是连接到数据库的代码:
class Con{
private $pdo;
public function conex($db){
try{
// $pdo = $this->pdo;
if ($this->pdo == null){
sleep(0.1);
$this->pdo = new PDO("sqlite:../../content/engine/" . $db,"","",array(
PDO::ATTR_PERSISTENT => true
));
$this->pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
return $this->pdo;
}catch(PDOException $e){
die( $e->getMessage());
} finally{
$this->pdo = null;
}
}
}
class Q_General extends Con{
protected $db;
public function __construct($db){
if ($this->db == null){
$this->db = $this->conex($db);
}
}
public function get_query($sql){
$query = $this->db->prepare($sql);
$query->execute();
$res = $query->fetchAll();
$query->closeCursor();
return $res;
}
}
我使用AJAX进行请求,所以我可以控制请求的数量和顺序,并为每个请求设置一个队列,目的是避免同时写入或读取。
有什么线索我能做错什么吗?
1条答案
按热度按时间pbgvytdp1#
我终于找到了问题所在,那就是XAMPP。在Xampp中,没有发生,所以我猜问题出在Xampp的配置上,它不能很好地处理SQLite。使用AWait每次创建一个AJAX请求,问题就解决了。