我正在使用Slim框架为我们的客户提供API。我专注于Java,所以可能就是这样,因为问题与数据库连接有关。
每个请求都连接到数据库抛出PDO,如
$dbh = new PDO($param1, $param2, $param3);//php 7.1
因为php没有连接池我理解每个请求(可能在同一时间)启动一个新连接抛出数据库。
但我在这里尝试了一种情况。
如果一个请求启动一个事务以插入或更新某些内容,下一个请求将等到此事务完成,但它在另一个线程上,所以我正在考虑表锁?或者像每个请求之类的东西都获得相同的连接。
问题:
因此,如果他们在不同的线程中具有不同的连接方式 他们需要等到第一次请求的交易结束。
我的数据库源类类似于
class DataBaseConfig {
public static function getConn()
{
$dbh = new PDO($param1, $param2, $param3);
$dbh->exec("set names utf8");
return $dbh;
}
}
我就像
一样使用它$db = DataBaseConfig::getConn();
$db->beginTransaction();
//code
$db->commit();
我确实遗漏了一些东西,所以有人可以帮我解决这个问题吗?
谢谢!
NEWS!修改
@YourCommonSense谢谢你,它最终是一个会话配置。一世 不知道php start_session();锁定会话文件,以便 发生了什么事。非常感谢! 链接:https://ma.ttias.be/php-session-locking-prevent-sessions-blocking-in-requests/