变量数与准备语句中的参数数不匹配

Number of variables doesn't match number of parameters in prepared statements

$sql = "SELECT table_name FROM information_schema.tables WHERE table_schema = '?'";
$stmt = $db->prepare($sql);
$stmt->bind_param("s", $database);
$stmt->execute();
$resultSet = $stmt->get_result();

它说“警告:mysqli_stmt::bind_param():变量数量与准备语句中的参数数量不匹配...”

有人可以解释一下哪里出了问题吗? $database 是一个字符串。

如果您使用 ? 作为占位符,请不要使用 ticks ' s

$sql = "SELECT table_name FROM information_schema.tables WHERE table_schema = ?";
$stmt = $db->prepare($sql);
$stmt->bind_param('s', $database);
$stmt->execute();
$resultSet = $stmt->get_result();