我正在尝试开发一个开源项目,但我遇到了一些问题。我正在使用一个PHP函数文件,其中编写了我的所有函数。它包含以下内容:
函数.php
<?php include 'inc/db.php';
function getCategories(){
$sqlGetCategories = $conn->prepare("SELECT name FROM categories");
$sqlGetCategories->execute();
return $sqlGetCategories->fetchAll();
}
?>
这是我的索引.php
<?php include 'inc/functions.php';
$listeCategories = getCategories();
foreach($listeCategories as $row) {
echo "<option>"; echo $row['name']; echo "</option>";
}?>
当我调用函数getCategories时,屏幕上没有任何显示。
我尝试了很多在这个网站上找到的其他方法,没有任何工作正常。
如果你们能帮助我,那就太好了。
谢谢
发生的情况是变量 $conn
不存在,因为您现在声明了一个函数。您需要将连接变量作为参数或函数中的全局变量传递。如果你只有一个php文件,它在不使用函数的情况下从数据库中获取类别,那么你就不会遇到变量范围的问题。
OPTION1:
<?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();
}
?>
或:
OPTION2:
<?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();
}
?>
在此处阅读有关变量作用域的更多信息