您好,我很确定它们在相同的范围内,并且不确定为什么现在像以前那样出现此错误。
这些是与该文件夹相同的其他文件 php文件:
dbh.php recipeLookUp.php
我在第9行收到错误消息 这是recipeLookUp.php
<?php
function lookup($sql,$column_name){
$results_search=array();
include_once 'dbh.php';
$results=mysqli_query($conn,$sql);
$resultsCheck = mysqli_num_rows($results);
if ($resultsCheck > 0) {
while ($row = mysqli_fetch_assoc($results)){
$info= $row[$column_name];
$results_search[]=$info;
}
return $results_search;
}
}
这是我的另一个文件
<?php
$dbServername = 'localhost';
$dbUsername = 'root';
$dbPassword = '';
$dbName = 'Recipe';
$conn = mysqli_connect($dbServername,$dbUsername,$dbPassword,$dbName);
我肯定它可能有点小东西,但我找不到它,请帮忙!
答案 0 :(得分:-1)
您的函数中的include_once 'dbh.php';
似乎很混乱。如果您还需要执行SQL查询的其他功能,该怎么办?
相反,我会将include_once 'dbh.php';
放在函数的上方(上方),也许使用require_once
而不是include once
。然后在函数内部,将global $conn;
放在mysqli_query
调用上方,以便将$conn
变量传递到mysqli_query
时在其中定义。
但是,如果您担心创建不必要的SQL连接(例如,如果从未真正调用过lookup
函数),我认为将其放入dbh.php
会更好: >
<?php
$conn = null;
function Query($sql)
{
global $conn;
if (!$conn) // will only connect if connection does not exist yet
{
$dbServername = 'localhost';
$dbUsername = 'root';
$dbPassword = 'xxxxxxxxxxx';
$dbName = 'Recipe';
$conn = mysqli_connect($dbServername,$dbUsername,$dbPassword,$dbName);
}
return mysqli_query($conn,$sql);
}
?>
现在,在您的主PHP文件或包含require_once 'dbh.php';
的任何PHP文件中,您都可以直接使用Query($sql)
来执行查询,这将处理连接本身(并且只有在必要)。