我熟悉创建程序风格的 PHP 函数来从数据库中选择信息,但是在切换到使用面向对象的准备好的 SQL 语句时,我的函数不再工作了。我还没有像我做程序 PHP 那样理解 OOP,并且正在努力学习,所以这是我的问题:
这按预期工作:
if ($stmt = $mysqli->prepare("SELECT state FROM country WHERE city = ?")) {
$stmt->bind_param("s", $city);
$city = 'la';
$stmt->execute();
$stmt->bind_result($state);
$stmt->fetch();
$stmt->close();
echo $state;
}
然而,这不会:
function get_state( $city ) {
if ($stmt = $mysqli->prepare("SELECT state FROM country WHERE city = ?")) {
$stmt->bind_param("s", $city);
$stmt->execute();
$stmt->bind_result($state);
$stmt->fetch();
$stmt->close();
echo $state;
}
}
get_state('la');
这两个示例都需要数据库 mysqli 连接,但功能版本由于某种原因不起作用,我做错了什么?