Adodbからoci8ドライバを使って変数をbindしてみる
通常、MySQLなどからだと"WHERE test_id = ?"というSQLをPHP内に書いてbindをするけれど、oci8ドライバだと"oci_bind_by_name"という関数を使ってbindする都合上、そのやり方だとうまくいかない。
SQL内でbind部分は":testid"のように書き、bindする配列は連想配列で渡さないとうまくいかない。
<?php $conn = ADONewConnection( "oci8" ); $conn->Connect( false, "scott", "tiger" ) // [ポイント] SQL文 mysql等で"?"に該当するのは":testid" $sql = "SELECT * FROM TEST_MORE WHERE TEST_ID = :testid\n"; $bind = array(); // [ポイント] 連想配列でbindする配列を作成 $bind["testid"] = 1; $stmt = $conn->Prepare($sql); $rs = $conn->Execute($stmt, $bind); ?>