Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从数据库中检索数据并将其作为变量传递的最佳方法是什么_Php_Pdo - Fatal编程技术网

Php 从数据库中检索数据并将其作为变量传递的最佳方法是什么

Php 从数据库中检索数据并将其作为变量传递的最佳方法是什么,php,pdo,Php,Pdo,所以我做了一些搜索,但结果似乎有点混乱,这就是为什么我在这里问 问题是我有一个setup.php文件,在其中我预加载了在页面中加载某些内容所需的选项,我不知道这是否是最好的方法 代码如下: function fetch_site_option($id){ $conn=Core::getInstance()->db->prepare("SELECT value FROM options WHERE id = ?"); $conn->bindParam(1,$id,

所以我做了一些搜索,但结果似乎有点混乱,这就是为什么我在这里问

问题是我有一个setup.php文件,在其中我预加载了在页面中加载某些内容所需的选项,我不知道这是否是最好的方法

代码如下:

function fetch_site_option($id){
    $conn=Core::getInstance()->db->prepare("SELECT value FROM options WHERE id = ?");
    $conn->bindParam(1,$id,PDO::PARAM_INT);
    $conn->execute();
    if($conn->rowCount()==1){
        $data=$conn->fetch(PDO::FETCH_ASSOC);
    }else{
        $data=null;
    }
    return $data['value'];
}
以及需要检索的值:

$siteTitle=fetch_site_option('1');
$mainPage=fetch_site_option('2');
$debug=fetch_site_option('3');
$logo=fetch_site_option('4');
$sTT=fetch_site_option('5');
这会重复很多次,这就是为什么它需要非常高效的原因


提前感谢。

为了提高效率,您应该尝试将多个请求合并为一个请求。试着这样做:

SELECT id, value FROM options WHERE id IN (?,?,?,?,?)

这将在一个请求中返回所有必需的行。您应该更改函数fetch\u site\u选项以返回id和值数组,而不是一次返回一个值。

您可以随时修改代码,使其可以获取id数组-然后可以从id所在的选项中选择id、值。。。在一次调用中获取多个值;尽管您还需要修改调用代码,以便在数据库返回的值中找到特定的值。因此,无论系统速度慢,一次调用都应该更快?