gpt4 book ai didi

PHP 使用 FetchAll 创建函数

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

我正在尝试开发一个开源项目,但遇到了一些问题。我正在使用 PHP 函数文件,其中编写了我的所有函数。它包含以下内容:
functions.php

<?php include 'inc/db.php';
function getCategories(){
$sqlGetCategories = $conn->prepare("SELECT name FROM categories");
$sqlGetCategories->execute();
return $sqlGetCategories->fetchAll();
}
?>

这是我的index.php

<?php include 'inc/functions.php';
$listeCategories = getCategories();
foreach($listeCategories as $row) {
echo "<option>"; echo $row['name']; echo "</option>";
}?>

当我调用函数getCategories时,屏幕上没有显示任何内容。

我尝试了在该网站上找到的许多其他方法,但没有任何效果正常。

如果你们能帮助我,那就太好了。

谢谢

最佳答案

发生的情况是变量$conn不存在,因为您现在声明了一个函数。您需要将连接变量作为参数或函数中的全局变量传递。如果您只是有一个从数据库获取类别而不使用函数的 php 文件,那么您就不会遇到变量范围的问题

选项1:

<?php 
include 'inc/db.php';
function getCategories($conn){//pass connection as a parameter
$sqlGetCategories = $conn->prepare("SELECT name FROM categories");
$sqlGetCategories->execute();//returns true/false
return $sqlGetCategories->fetchAll();
}
?>

或者:

选项2:

<?php
include 'inc/db.php';
function getCategories(){
global $conn;//use as a global variable(Although i prefer option1)
$sqlGetCategories = $conn->prepare("SELECT name FROM categories");
$sqlGetCategories->execute();
return $sqlGetCategories->fetchAll();
}

?>

了解有关变量作用域的更多信息 here

关于PHP 使用 FetchAll 创建函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44198422/

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