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