ホームページ > データベース > mysql チュートリアル > Mysqli プリペアド ステートメントを使用すると「致命的エラー: 非オブジェクトのメンバー関数execute() の呼び出し」が発生するのはなぜですか?

Mysqli プリペアド ステートメントを使用すると「致命的エラー: 非オブジェクトのメンバー関数execute() の呼び出し」が発生するのはなぜですか?

Linda Hamilton
リリース: 2024-12-25 15:15:16
オリジナル
907 人が閲覧しました

Why Am I Getting

Mysqli プリペアド ステートメントの使用における落とし穴

開発者はプリペアド ステートメントを利用しようとして課題に遭遇し、「致命的なエラー: メンバー関数の呼び出し実行」というエラーを受け取りました。 () オブジェクトではないものについて。」この記事では、この問題の根本原因を詳しく掘り下げ、Mysqli でプリペアド ステートメントを適切に使用するための包括的なガイドを提供します。

エラーの原因

この問題は、パラメーター バインディングの省略から発生します。準備されたステートメントを実行する前に。 Mysqli では、ステートメントを実行する前に、mysqli_stmt_bind_param() 関数を介してパラメーターをアプリケーション変数にバインドする必要があります。

準備されたステートメントの実装

1.パラメータバインディング:

$name = 'one';
$age  = 1;

$stmt = $mysqli->prepare("INSERT INTO users (name, age) VALUES (?,?)");

// bind parameters. Refer to documentation for appropriate data types (e.g., 'si' for string and integer).
$stmt->bind_param('si', $name, $age);
ログイン後にコピー

2.ステートメントの実行:

$stmt->execute();
ログイン後にコピー

3.後続のパラメータ バインドと実行:

異なる値を持つ複数の行を挿入するには、各実行前にパラメータ バインド ステップを繰り返す必要があります。

例:

$name = 'two';
$age  = 2;

// Update bound parameters
$stmt->bind_param('si', $name, $age);

// Execute with different values
$stmt->execute();
ログイン後にコピー

4.完全な例:

$mysqli = new mysqli("localhost", "root", "root", "test");
if ($mysqli->connect_errno) {
    echo "Failed to connect to MySQL: " . $mysqli->connect_error;
}

$stmt = $mysqli->prepare("INSERT INTO users (name, age) VALUES (?,?)");
try {
    // Insert one row
    $name = 'one';
    $age  = 1;
    $stmt->bind_param('si', $name, $age);
    $stmt->execute();

    // Insert another row with different values
    $name = 'two';
    $age  = 2;
    $stmt->bind_param('si', $name, $age);
    $stmt->execute();
} catch (Exception $e) {
    echo "Error: " . $e->getMessage();
}
ログイン後にコピー

以上がMysqli プリペアド ステートメントを使用すると「致命的エラー: 非オブジェクトのメンバー関数execute() の呼び出し」が発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート