Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/236.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 编制报表:方法';准备';在课堂上找不到_Php - Fatal编程技术网

Php 编制报表:方法';准备';在课堂上找不到

Php 编制报表:方法';准备';在课堂上找不到,php,Php,我刚刚开始学习准备好的语句,但出于某种原因,我从我的另一个项目(可以工作)复制并粘贴了这段代码,它告诉我mysqli对象没有准备好的语句方法。我在这个代码片段中忘记了什么?后面与该问题无关的部分已被编辑,但对于我试图调用$stmt的每个对象,它表示找不到该方法 $dbhost = 'redacted'; $dbname = 'redacted'; $dbuser = 'redacted'; $dbpass = 'redacted'; $db = mysqli_connect($dbhost,$

我刚刚开始学习准备好的语句,但出于某种原因,我从我的另一个项目(可以工作)复制并粘贴了这段代码,它告诉我mysqli对象没有准备好的语句方法。我在这个代码片段中忘记了什么?后面与该问题无关的部分已被编辑,但对于我试图调用$stmt的每个对象,它表示找不到该方法

$dbhost = 'redacted';
$dbname = 'redacted';
$dbuser = 'redacted';
$dbpass = 'redacted';

$db = mysqli_connect($dbhost,$dbuser,$dbpass, $dbname) or die("Error " . mysqli_error($db));
后来这被称为:

function register($db) {
$user = $_POST['username'];
$pass = $_POST['password'];

$stmt = $db->prepare("SELECT username FROM users WHERE username=?");
$stmt->bind_param("s", $user);
$stmt->bind_result($result);
$stmt->execute();
$stmt->store_result();
$stmt->fetch();
}


switch ($action) {
case 'register':
    register($db);
    break;
case 'login':
    login($db);
    break;
}

您需要添加
global$db
,这样
$db
将在您的函数中可见。@barell这是一个已传递的参数,我从另一个函数中传递了它,但是,我认为它不应该是必需的,除非PHP有一些我不知道的特性。这是完全可能的!你说得对,我没注意到。你是如何调用你的函数的?我已经编辑了原来的帖子来显示$action是一个POST变量,它是在所有这些变量之上定义的。