0

プリペアドステートメントを使用して、関数内からデータベースにデータを挿入しようとしています。

以下は、ファイルの外部から呼び出された場合にうまく機能します。

function insert($value1, $value2)
{
$mysqli = new mysqli("localhost", "***", "***", "***");
    if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}
    if ($stmt = $mysqli->prepare("INSERT INTO table (col1, col2) values (?, ?)")) {
    $stmt->bind_param('ss', $value1, $value2);
    $stmt->execute();
}
}

ただし、接続文字列を関数の外に移動したいので、スコープの問題が発生します。これを行うにはクラスが必要だと読みましたが、誰かが例を説明してもらえますか?

ありがとう

4

1 に答える 1

0

最も簡単な方法は、接続線を関数の外(グローバルスコープ内)に移動し、最初に関数内に次のように配置することです。

global $mysqli;

参照: http: //php.net/global

必要に応じてクラスを使用して、少し複雑な接続をクラス変数に格納することもできます。繰り返しになりますが、クラス、メソッド、変数の作成と使用の例とともに、すべてがPHPドキュメントで明確に説明されています。

http://php.net/class

于 2012-07-05T15:35:22.957 に答える