使用FetchAll的PHP创建函数
我正试图开发一个开源项目,但我遇到了一些问题。 我使用的是一个PHP函数文件,所有函数都是在这里编写的。它包含以下内容:使用FetchAll的PHP创建函数,php,mysql,function,pdo,Php,Mysql,Function,Pdo,我正试图开发一个开源项目,但我遇到了一些问题。 我使用的是一个PHP函数文件,所有函数都是在这里编写的。它包含以下内容: functions.php 这是我的index.php 当我调用函数getCategories时,屏幕上没有显示任何内容 我尝试了很多在这个网站上找到的其他方法,但都没有正常工作 如果你们能帮我,那就太好了 谢谢发生的情况是变量$conn不存在,因为您现在声明了一个函数。您需要在函数中以参数或全局变量的形式传递连接变量。如果您只有一个php文件,它可以从数据库中获取类
functions.php
这是我的index.php
当我调用函数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();
}
?>
<?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();
}
?>
或:
选项2:
<?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();
}
?>
<?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();
}
?>
阅读有关变量作用域的详细信息
$conn
未定义。您可以使用$conn
作为全局变量,或将其作为参数传递到函数中,或者更好的做法是使用带有constructor@Akintunde它可能在db里面。php@CodeIt这不会使它在函数的scope@CodeIt不,它不在那里。OP有一个功能。$conn
不可能工作。阅读更多关于变量scopesYep的内容,$conn应该声明为全局$conn。不过我很乐意