【发布时间】:2014-02-05 06:24:40
【问题描述】:
我有一个名为 init.php 的初始化文件,我为 mysqli 连接声明了一个名为 $db 的变量。下面是我的代码。
<?php
ob_start();
session_start();
define('DBHOST', '127.0.0.1');
define('DBUSER', 'root');
define('DBPASSWORD', '');
define('DBNAME', 'mydb');
$db = new mysqli(DBHOST, DBUSER, DBPASSWORD, DBNAME);
if ($db->connect_error) {
header('Location: 404.php');
}
require_once 'functions/User.php';
require_once 'functions/Sanitize.php';
如您所见,我在函数文件夹中需要 User.php,在 User.php 文件中我有此代码
<?php
function login($idnumber, $username, $password) {
$idnumber = sanitize($idnumber);
$username = sanitize($username);
$password = sanitize($password);
$hashed_password = get_hashed_password($username);
}
function get_hashed_password($username) {
$username = sanitize($username);
$sql = "SELECT `password` FROM `users` WHERE `username` = ?";
$stmt = $db->prepare($sql);
if(!$stmt) {
echo 'invalid sql statement';
}
die();
}
在 get_hashed_password() 函数中,我使用了变量 $db,但我收到一条错误消息
Notice: Undefined variable: db in D:\xampp\htdocs\sample\functions\User.php on line 15
Fatal error: Call to a member function prepare() on a non-object in D:\xampp\htdocs\sample\functions\User.php on line 15
有人可以帮助我如何在我的任何函数中使用变量 $db 吗?提前致谢!
【问题讨论】:
-
将变量
$db作为函数的参数传递。
标签: php function variables mysqli