gpt4 book ai didi

具有查询优化功能的 php 函数

转载 作者:行者123 更新时间:2023-11-29 19:25:57 24 4
gpt4 key购买 nike

我正在学习 php,目前正在使用函数。创建了一个包含两个表的简单数据库:类别和新闻。

我还创建了三个函数:get_news_title、get_news_image、get_news_text每个函数返回 - 标题、图像或完整的文章文本。现在它的设置是这样的:

function get_news_title($id) {
$sql = $this->conn->prepare("SELECT title from news WHERE id = :id");
$sql->bindparam(":id", $id);
$sql->execute();
$row=$sql->fetch(PDO::FETCH_ASSOC);
$title = $row["title"];
}

function get_news_image($id) {
$sql = $this->conn->prepare("SELECT img from news WHERE id = :id");
$sql->bindparam(":id", $id);
$sql->execute();
$row=$sql->fetch(PDO::FETCH_ASSOC);
$img = $row["img"];
}

function get_news_text($id) {
$sql = $this->conn->prepare("SELECT full_text from news WHERE id = :id");
$sql->bindparam(":id", $id);
$sql->execute();
$row=$sql->fetch(PDO::FETCH_ASSOC);
$text = $row["full_text"];
}

每个函数都包含一个查询,但是是否有更好的方法?在每个函数中使用查询是一个好习惯吗?因为如果我调用所有这些函数,则会运行三个单独的查询。

使用这样的东西是个好主意吗:

function get_news($id,$field) {
$sql = $this->conn->prepare("SELECT :field from news WHERE id = :id");
$sql->bindparam(":id", $id);
$sql->bindparam(":field", $field);
$sql->execute();
$row=$sql->fetch(PDO::FETCH_ASSOC);
$title = $row["title"];
}

最佳答案

如果您想坚持自己的方法并且确定 $fields 仅由您控制,请尝试这样的操作:

     function get_news($id,array $fields) {

$fields = implode(',', $fields);

$sql = $this->conn->prepare("SELECT $fields from news WHERE id = :id");
$sql->bindparam(":id", $id);
$sql->execute();
$row=$sql->fetch(PDO::FETCH_ASSOC);
$title = $row["title"];
}

关于具有查询优化功能的 php 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42158484/

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