include 中的 PHP 变量未定义

标签 php mysql mysqli undefined

我正在尝试让一个连接到本地数据库的基本注册页面正常工作。

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()的第一个参数应该是存储在$con中的MySQL连接资源,而不是$dbhost

function queryMysql($query, $con)
{
    $result = mysqli_query($con, $query) or die(mysqli_error($con));
    return $result;
}

关于include 中的 PHP 变量未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27909063/

相关文章:

php - 如何解决这种表连接?

mysql - phpmyadmin 存储过程语法错误 sum(convert (field,decimal(4,2)))

php - ORDER BY Year DESC 不工作

php - MySQL 事务内的查询是否保证一起执行?

javascript - 如何从另一个表创建我的 php 表

php - ics 文件 mime 类型

php - 在 MYSQL 中有效地连接 3 个表

MySQL INT类型的5个字节?

php - 如何使用 PHP 统计 MySQL 连接数

php - 打开购物车显示已弃用 : mysql_connect() message on top