[PHP-users 32084] phpで execute を関数化

Shin Arita shin.arita @ plusonesystem.co.jp
2007年 5月 9日 (水) 15:54:27 JST


こんにちは、有田と申します。

現在、prepareとexecuteを関数化しようと思っていますが
うまくできません。

やりたい事は、SQL文とパラメータを関数に渡して結果を取得したいだけです。

以下のコードだと、実行時にexecuteのパラメタが足りないというような
ワーニングが出るのですが、どのようにして、パラメータをセットすれば
よいのでしょうか?

以下、ソースを載せますのでよろしくお願い致します。

-関数-
function db_execute($con, $sql, $params){
  $stmt = ibase_prepare($con, $sql);
  $rset = ibase_execute($stmt, $params);
  return ibase_fetch_object($rset);
}

-実行元-
$user_id = 1;
$passwd  = 'ABCDEFG';
$params  = array($user_id, $passwd);
$sql = "SELECT NAME_DISP, "
     .        "MAILADDRESS "
     .   "FROM MS_MEMBER "
     .  "WHERE USER_ID =  ? AND "
     .       " PASSWD  =  ?";
$row = db_execute($con, $sql, $params);
echo $row->NAME_DISP;

-メッセージ-
Warning: ibase_execute() [function.ibase-execute]: Statement expects 2 arguments

環境は、以下の通りです。
OS:WindowsXpPro
DB:Firebird1.5
php5
Apache2

以上、よろしくお願い致します。


PHP-users メーリングリストの案内