gpt4 book ai didi

php - 编写 MySQLI 调用的更好方法

转载 作者:可可西里 更新时间:2023-11-01 08:49:32 24 4
gpt4 key购买 nike

关闭。这个问题是opinion-based .它目前不接受答案。












想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文回答问题.

8 年前关闭。




Improve this question




我是 stackoverflow 的新手。所以希望你明白我的问题

目前我写我的 MySQLI 调用是这样的 - 但取决于我想要实现的目标。

function getArticles($dbh) {
$query = "SELECT article_id,article_name,article_text FROM Articles";
$result = mysqli_query($dbh,$query);
if(!mysqli_errno($dbh)) {
if(mysqli_num_rows($query) > 0) {
$articles = array();
while($rows = mysqli_fetch_object($query) {
$articles[] = $rows;
}
}
mysqli_free_result($dbh)
} else {
echo mysqli_error($dbh);
}
return ($articles);
}

然后我获取它们并在我的调用页面中使用 foreach() 显示。
我可以以任何方式使我的 MySQL 调用更好吗?,或者你会如何编写你的 Mysql 调用。

最佳答案

我也会选择 OO 方式,但除此之外,我会在单独的类或函数中调用查询。然后,您可以编写一个函数,该函数将 SQL 查询和参数数组作为输入,并返回一个包含结果或错误代码或错误对象(或数组)的数组。这样,像 getArticles 这样的函数(您可能有几十个)只包含一行代码,您不必每次都实现循环和错误处理。

像这样的东西:

function executeQuery($dbh, $sql)
{
$result = mysqli_query($dbh, $sql);
if ($result !== false)
{
while($row = mysqli_fetch_object($query) {
$data[] = $row;
}
return $data;
}
return false;

// Or maybe return some error code or error information?
// Maybe throw an exception?
// You could return an array with info, but then you'd have to check
// if the resulting array contains data or error information...
}

function getArticles($dbh) {
return executeQuery(
$dbh,
"SELECT article_id,article_name,article_text FROM Articles");
}

看看它如何从 getArticles 中提取所有逻辑并在 executeQuery 中对其进行概括?

关于php - 编写 MySQLI 调用的更好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17709209/

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