我想做的就是从此函数获取名字的结果,但是感觉太多的代码无法基于会话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-返回单个数据库结果的正确方法是什么? 所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)