PHP include 中的变量未定义
PHP variables in include not defined
我正在尝试让连接到本地数据库的基本注册页面正常工作。
Notice: Undefined variable: dbhost in C:\wamp\www\functions.php on line 19
Warning: mysqli_query() expects parameter 1 to be mysqli, null given in C:\wamp\www\functions.php on line 19
Notice: Undefined variable: con in C:\wamp\www\functions.php on line 19
Warning: mysqli_error() expects parameter 1 to be mysqli, null given in C:\wamp\www\functions.php on line 19
这些是我得到的错误。当我在我的 functions.php 脚本中引用一个函数时,它们就会发生。
<?php //functions.php
$dbhost = 'localhost'; //change to webserver ip
$dbname = 'maindb';
$dbuser = 'administrator';
$dbpass = 'password';
$appname = "webapp";
$con = mysqli_connect($dbhost,$dbuser,$dbpass) or die (mysqli_error($con));
mysqli_select_db($con, $dbname) or die (mysqli_error($con));
function createTable($name, $query)
{
queryMysql("CREATE TABLE IF NOT EXISTS $name($query)");
echo "Table '$name' created or already exists<br>";
}
function queryMysql($query)
{
$result = mysqli_query($dbhost, $query) or die(mysqli_error($con));
return $result;
}
我不确定这里的问题是什么。我在几年前学习 PHP,自 2011 年以来似乎发生了很大变化。任何帮助将不胜感激。
这些变量是在全局范围内声明的,因此对您的函数不可用。要制作它们,您需要将它们作为该函数的参数传递:
function queryMysql($query, $con, $dbhost)
(您也可以使用 global
关键字,但这是一种不好的做法,因此我不会在此处显示)。
此外,mysqli_query()
的第一个参数应该是你的MySQL连接资源,它存储在$con
,而不是$dbhost
function queryMysql($query, $con)
{
$result = mysqli_query($con, $query) or die(mysqli_error($con));
return $result;
}
mysqli_query
需要连接而不是主机,您必须传入它:
function queryMysql($con, $query)
{
$result = mysqli_query($con, $query) or die(mysqli_error($con));
return $result;
}
那么当你调用它时:
$result = queryMysql($con, $query)
我正在尝试让连接到本地数据库的基本注册页面正常工作。
Notice: Undefined variable: dbhost in C:\wamp\www\functions.php on line 19
Warning: mysqli_query() expects parameter 1 to be mysqli, null given in C:\wamp\www\functions.php on line 19
Notice: Undefined variable: con in C:\wamp\www\functions.php on line 19
Warning: mysqli_error() expects parameter 1 to be mysqli, null given in C:\wamp\www\functions.php on line 19
这些是我得到的错误。当我在我的 functions.php 脚本中引用一个函数时,它们就会发生。
<?php //functions.php
$dbhost = 'localhost'; //change to webserver ip
$dbname = 'maindb';
$dbuser = 'administrator';
$dbpass = 'password';
$appname = "webapp";
$con = mysqli_connect($dbhost,$dbuser,$dbpass) or die (mysqli_error($con));
mysqli_select_db($con, $dbname) or die (mysqli_error($con));
function createTable($name, $query)
{
queryMysql("CREATE TABLE IF NOT EXISTS $name($query)");
echo "Table '$name' created or already exists<br>";
}
function queryMysql($query)
{
$result = mysqli_query($dbhost, $query) or die(mysqli_error($con));
return $result;
}
我不确定这里的问题是什么。我在几年前学习 PHP,自 2011 年以来似乎发生了很大变化。任何帮助将不胜感激。
这些变量是在全局范围内声明的,因此对您的函数不可用。要制作它们,您需要将它们作为该函数的参数传递:
function queryMysql($query, $con, $dbhost)
(您也可以使用 global
关键字,但这是一种不好的做法,因此我不会在此处显示)。
此外,mysqli_query()
的第一个参数应该是你的MySQL连接资源,它存储在$con
,而不是$dbhost
function queryMysql($query, $con)
{
$result = mysqli_query($con, $query) or die(mysqli_error($con));
return $result;
}
mysqli_query
需要连接而不是主机,您必须传入它:
function queryMysql($con, $query)
{
$result = mysqli_query($con, $query) or die(mysqli_error($con));
return $result;
}
那么当你调用它时:
$result = queryMysql($con, $query)