gpt4 book ai didi

PHP:我的页面需要很长时间才能加载但不会超时。一次有太多查询还是可以优化我的代码?

转载 作者:行者123 更新时间:2023-11-29 04:48:13 25 4
gpt4 key购买 nike

这是我用来访问数据库的函数,理论上可能在一个 do while 循环中最多执行 10-20 次,但现在我删除了循环,因此它一次只能执行一个数据库查询。这是否可以进一步优化,或者这是正确完成交易和提交的方式?另外,我不知道 $db->rollBack() 实际上做了什么,我只是在 stackoverflow 上看到它

<?php
function util_db_access($statement, $array) {
$db = new PDO('mysql:host=localhost;dbname=db;charset=UTF8', 'user', 'pass');

try {
//echo "1";
$db->beginTransaction();
//echo "2";
$stmt = $db->prepare($statement);
//echo "3";
if($stmt->execute($array)) {
$db->commit();
//echo "4";
if($rows = $stmt->fetchAll(PDO::FETCH_ASSOC)) {
//echo "5";
if($stmt->rowCount() < 2) {
$rows = $rows[0];
}
return $rows;
} else {
//echo "6.1";
//$db->commit();
return true;
}
} else {
//echo "6.2";
//$db->commit();
return false;
}
} catch(PDOException $e) {
$db->rollBack();
//log, we are gonna keep a log eventually.. right?
return -1;
}
}
?>

最佳答案

这个东西可以很快优化。对于初学者来说,每次函数调用都会创建一个新的数据库连接。我不确定当 PDO 对象超出范围时连接是否关闭,但它的设计很糟糕。


更新

当 PDO 对象被销毁时,PHP 将关闭与数据库的连接。引用 http://php.net/manual/en/pdo.connections.php

关于PHP:我的页面需要很长时间才能加载但不会超时。一次有太多查询还是可以优化我的代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15393228/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com