質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Oracle

Oracleは、米オラクルが取り扱うリレーショナルデータベース管理システムです。メインフレームからPCまで、多様なプラットフォームに対応しています。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Brackets

Bracketsは、オープンソースで開発されているHTML/CSS/JavaScriptのコードエディターです。

Q&A

解決済

1回答

1066閲覧

PHPでOracleDBから日付検索を行う際に、変数バインドが上手くいかない

ttakka

総合スコア3

Oracle

Oracleは、米オラクルが取り扱うリレーショナルデータベース管理システムです。メインフレームからPCまで、多様なプラットフォームに対応しています。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Brackets

Bracketsは、オープンソースで開発されているHTML/CSS/JavaScriptのコードエディターです。

0グッド

0クリップ

投稿2020/08/19 01:40

編集2020/08/19 04:05

前提・実現したいこと

OracleにPHPで指定した日付で検索を行いデータを抽出したい

発生している問題・エラーメッセージ

Parse error: syntax error, unexpected ':', expecting ')' oci_bind_by_nameでの変数のバインドが上手くいきません

該当のソースコード

PHP

1*****SQL部分***** 2 $date = $_POST['date']; //var_dump時の例[string(10) "2020-08-12"] 3 4 $sql = "SELECT MES_DATA,to_char(DATE_DATA,'YYYY/MM/DD hh:mm:ss') 5 FROM MEMO_TABLE 6 WHERE to_char(DATE_DATE,'YYYY-MM-DD') >= :date"; 7 $stid = oci_parse($conn,$sql); 8 oci_bind_by_name($stid, ':date', $date); //おおよそこのラインでエラーがでます 9 oci_execute($stid); 10 11*****POST送信部分***** 12<form action="" method="post"> 13 <input type="date" name="date"> 14 <input type="submit"> 15</form>

試したこと

  • WHERE句に[WHERE to_char(DATE_DATA,'YYYY-MM-DD') >= '2020-08-12']のように直接日付を記入した場合は正常に機能
  • SQL部分、oci_bind部分の:dateにクォーテーションを付けたりするも機能せず
  • POSTデータを変数に代入する際に、$date = "'" . date('Y-m-d',strtotime($_POST['date'])) . "'";のようなことも試すも機能せず
  • oci_bind_array_by_nameで試してみるも機能せず

補足情報(FW/ツールのバージョンなど)

OS:Windows10
エディタ:Brackets
DB:Oracle 18c XE

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

単純にデータベースの列名の記述ミスでした、ただPOSTデータをbind⇒executeしていた為に実行時にエラーが起こり適切なエラーが表示されず、エラー発生ラインもずれてしまっていたようです。

投稿2020/08/19 02:06

ttakka

総合スコア3

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問