Tôi gặp khó khăn khi quyết định giải pháp tối ưu cho ứng dụng web của mình là truy cập (chủ yếu là đọc) nhiều lần cùng một dữ liệu người dùng trên mỗi phiên.mysql pdo giao dịch và lưu trữ phiên
Tôi có thể truy xuất tất cả dữ liệu người dùng cùng một lúc (khoảng 40 trường) thành $ _SESSION khi mở phiên mới hoặc tôi nên duy trì kết nối PDO (mysql) liên tục và truy vấn các thông số tôi cần từ cơ sở dữ liệu. thay thế?
CŨNG:
Nên có một sự khác biệt lớn về hiệu suất giữa đọc/cập nhật rất nhiều lĩnh vực cùng một lúc (whith một truy vấn tùy chỉnh) hoặc từng cái một (với sự kết hợp tùy chỉnh các truy vấn chung) trong cùng một giao dịch? ví dụ.
$dbh = new PDO("mysql:host=localhost;dbname",$dbuser,$dbpass,array(PDO::ATTR_PERSISTENT => true));
$fieldlist='';
foreach ($fields as $i=>$field){
$fieldlist.=$field['name'].':field'.$i.',';
}
rtrim($fieldlist,',');
$dbh->prepare("UPDATE user SET ".$fieldlist." WHERE name=:name");
foreach ($fields as $i=>$field){
$stmt->bindValue(':field'.$i, $field['value'], PDO::PARAM_STR);
}
$stmt->bindValue(':name', $name, PDO::PARAM_STR);
$stmt->execute();
$dbh = null;
vs
$dbh = new PDO("mysql:host=localhost;dbname",$dbuser,$dbpass,array(PDO::ATTR_PERSISTENT => true));
$dbh->beginTransaction();
foreach($fields as $field){
$stmt=$dbh->prepare("UPDATE user SET ".$field['name']."=:field WHERE name=:name");
$stmt->bindValue(':field', $field['value'], PDO::PARAM_STR);
$stmt->bindValue(':name', $name, PDO::PARAM_STR);
$stmt->execute();
}
$dbh->commit();
$dbh = null;
Bạn không thể tuần tự hóa tài nguyên kết nối cơ sở dữ liệu vào một phiên. Tôi muốn nói rằng giải quyết rằng cuộc tranh luận. – deceze