[PHP-users 7950] ODBC 関数でのパラメータ SQL 、ストアドプロシージャの使い方

Yamaguchi Hiroshi php-users@php.gr.jp
Thu, 6 Jun 2002 09:31:56 +0900 (JST)


ひろしといいます。

PHPマニュアルや「今日からつかえる〜」などを
読んで鋭意勉強中の毎日です。

非常に初歩的な問題かもしれないのですが、ODBC
関数を使用していて、どうしても解決できない問
題があるので、皆さんのお知恵を貸してください。

1.odbc_prepare関数へのパラメータの渡し方
 下記のスクリプトを実行すると、「No parameters to SQL
statement
  given in c:\apache\htdocs\odbc.php on line 5」のよう
なエラーで
 はじかれてしまいます(line5はodbc_execute関数の行です
)。パラメ
 ータの埋め込み方は、JDBCと同じようなものかと考えていた
のですが、
 全然違うのですね。
 おそらく基本的なことだとは思うのですが、SQL文へのパラ
メータの埋め
 込み方についてお教え下さい。
---------------------------------
$aryPrm=array("XXX");
$db=odbc_connect("sample_php","","");
$rs=odbc_prepare($db,"SELECT * FROM emailTest WHERE
company= ? ",$aryPrm);
odbc_execute($rs);
---------------------------------

2.odbc_exec関数でのAccessクエリの実行方法
 Access上にあらかじめ用意されたクエリqryTestを実行しよ
うとしています。
 しかし、こちらもSQLエラーではじかれてしまいます。
 SQL文自体が間違っているのだとは思うのですが、どのよう
に記述するべき
 なのでしょうか。Accessのヘルプでも調べてみたのですが、
不明です。
 (以下エラーメッセージ。****は文字化け)
 SQL error: [Microsoft][ODBC Microsoft Access Driver]
PARAMETER *****",
  SQL state 37000 in SQLExecDirect in
c:\apache\htdocs\odbc.php on line 6
---------------------------------
$db=odbc_connect("sample_php","","");
$rs=odbc_exec($db,"PROCEDURE {qryTest}");
---------------------------------

PHPマニュアルを調べてみたのですが、特に用例らしきものも
なく、完全に行き
詰ってしまいました。参考文献などでも結構なので、お教えい
ただけますでしょ
うか。

なお、環境は以下の通りです。
 ・Windows2000
 ・Apache1.3.24
 ・PHP4.2.1

宜しくお願いします。

__________________________________________________
Do You Yahoo!?
Yahoo! BB is Broadband by Yahoo!  http://bb.yahoo.co.jp/