<?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 时,屏幕上不显示任何内容。
我在网站上尝试了很多其他方法,没有任何正常工作。
如果你们能帮助我,那就太好了。
由于
答案 0 :(得分:1)
当您现在声明了一个函数时,变量$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();
}
?>
OR:
<强> 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();
}
?>
详细了解变量范围here