私はデータベースから情報を選択するための手続き型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接続が必要ですが、何らかの理由で関数バージョンが機能しません。何が間違っているのでしょうか。