php-返回单个数据库结果的正确方法是什么?

php-返回单个数据库结果的正确方法是什么?,第1张

概述我想做的就是从此函数获取名字的结果,但是感觉太多的代码无法基于会话ID进行.//query_functions.php function find_name_by_id($id) { global $db; $sql = 'SELECT firstname FROM admins '; $sql .= 'WHERE id='' .

我想做的就是从此函数获取名字的结果,但是感觉太多的代码无法基于会话ID进行.

//query_functions.PHPfunction find_name_by_ID($ID) {    global $db;    $sql = "SELECT firstname FROM admins ";    $sql .= "WHERE ID='" . db_escape($db,$ID) . "' ";    $sql .= "liMIT 1";    $result = MysqLi_query($db,$sql);    confirm_result_set($result);    $name = MysqLi_fetch_assoc($result); // find first    MysqLi_free_result($result);    return $name; // returns an assoc. array  }// admin.PHPID = $_SESSION['admin_ID'];$name = find_name_by_ID($ID);// what is the shortest way to get this $name result?
最佳答案要使用prepared statements正确执行此 *** 作,实际上您需要的代码更多:

function find_name_by_ID($db,$ID) {    $stmt = $db->prepare("SELECT firstname FROM admins WHERE ID=?");    $stmt->bind_param("i",$ID);    $stmt->execute();    $result = $stmt->get_result();    $row = $result->fetch_assoc();    $stmt->free_result();    return $row[0];}

我不确定confirm_result_set是什么,所以我省略了它.

假设$db是一个PDO对象:

function find_name_by_ID($db,$ID) {    $stmt = $db->prepare("SELECT firstname FROM admins WHERE ID=?");    $stmt->execute([$ID]);    return $stmt->fetchColumn();}

涉及的代码更少.对于更高级别的API,它将被抽象为一行代码.

实际上,对于所有情况,您都希望进行一些错误检查,不考虑返回任何记录等.另外,您还应避免使用全局变量,因为它们的格式很差.将您的代码放入类中,或者像我刚才那样使用依赖项注入.

总结

以上是内存溢出为你收集整理的php-返回单个数据库结果的正确方法是什么? 全部内容,希望文章能够帮你解决php-返回单个数据库结果的正确方法是什么? 所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1166069.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存