0


0

PHPが準備したpostgresクエリが次のエラーで失敗する:「パラメータ$ 1のデータ型を特定できませんでした」

現在、準備されたステートメントを使用してpostgresデータベースにクエリを実装する必要があります。 私の現在のコードはこのようになります:

 $arrFilter = array("", "");
 $result = $db->prepare("select_music", "SELECT * FROM tblmusik WHERE lm_titel LIKE '%" . "$1" . "%' AND lm_text LIKE '%" . "$2" . "%');

(db→ prepare()はpg_prepare()を実行するだけです)

次に、このクエリを実行します。

 if (isset($data['lm_titel'])) {
   $arrFilter[0] = $data['lm_titel'];
 }
 if (isset($data['lm_text'])) {
   $arrFilter[1] = $data['lm_text'];
 }
 $result = $db->execute("select_music", $arrFilter);

しかし、私は次のエラーを受け取ります:

警告:pg_prepare():クエリに失敗しました:エラー:110行目の/home/freevma/htdocs/freeVMA/global/cls/db.phpのパラメーター$ 1のデータ型を特定できませんでした

これを実行させていただき、ありがとうございました!

brot

1 Answer


4


`$ arrFilter [0] = '%'を試してください。 $ data ['lm_titel']。 '%'; `

データベースでは、そのようにパラメーターをマージすることはできません(DBの連結演算子を使用しない限り)。 ’%' || $ 1 || '%'`も合法でなければなりません。