teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

3

php追加

2020/08/22 09:16

投稿

ttakka
ttakka

スコア3

title CHANGED
File without changes
body CHANGED
@@ -69,8 +69,11 @@
69
69
  SELECT * FROM WORK_TIME WHERE EXISTS
70
70
  (SELECT * FROM EMP_DATA WHERE EMP_ID = :id AND EMP_PASS = :pass);
71
71
 
72
+ INSERT INTO WORK_TIME (EMP_ID,IN_TIME)
73
+ VALUES (:id, SYSDATE);
72
74
 
73
75
 
76
+
74
77
  ### 補足情報(FW/ツールのバージョンなど)
75
78
 
76
79
  os:windows10

2

PHP上での動作確認 追加

2020/08/22 09:16

投稿

ttakka
ttakka

スコア3

title CHANGED
File without changes
body CHANGED
@@ -52,14 +52,25 @@
52
52
 
53
53
  構文、テーブル名カラム名の見直し書き直し
54
54
 
55
+ ---
56
+
55
- 値は直接入力ですが、Oracle上で動作確認を行った文
57
+ **値は直接入力ですが、Oracle上で動作確認を行った文**
58
+
56
59
  SELECT * FROM WORK_TIME WHERE EXISTS
57
60
  (SELECT * FROM EMP_DATA WHERE EMP_ID = [値] AND EMP_PASS = [値]);
58
61
 
59
62
  INSERT INTO WORK_TIME (EMP_ID,IN_TIME)
60
63
  VALUES ([値], SYSDATE);
61
64
 
65
+ ---
62
66
 
67
+ **上記の文をphp上で変数バインドを使用した場合も動作しました。**
68
+
69
+ SELECT * FROM WORK_TIME WHERE EXISTS
70
+ (SELECT * FROM EMP_DATA WHERE EMP_ID = :id AND EMP_PASS = :pass);
71
+
72
+
73
+
63
74
  ### 補足情報(FW/ツールのバージョンなど)
64
75
 
65
76
  os:windows10

1

テーブルデータ、試したこと、バージョン等の情報追加

2020/08/22 09:14

投稿

ttakka
ttakka

スコア3

title CHANGED
File without changes
body CHANGED
@@ -4,10 +4,30 @@
4
4
  一度データベースに書き込めたのですが、少し調整を行ってから書き込めなくなってしまいました。
5
5
  該当部分のコードはほぼ触っていないと記憶しています、エラーコード的に単純なミスかと思い見直し書き直しを行っているのですが一向に治りません。
6
6
 
7
+ ### EMP_DATA
8
+ |論理名|型|制約|
9
+ |:--:|:--:|:--:|
10
+ |EMP_ID|NUMBER|NOT NULL|
11
+ |EMP_PASS|VARCHAR2(20)||
12
+ |SEI|VARCHAR2(20)||
13
+ |MEI|VARCHAR2(20)||
14
+ |BIRTHDAY|DAY||
15
+
16
+ ### WORK_TIME
17
+ |論理名|型|制約|
18
+ |:--:|:--:|:--:|
19
+ |EMP_ID|NUMBER|NOT NULL|
20
+ |IN_TIME|DATE|NOT NULL|
21
+ |BREAK_OUT|DATE||
22
+ |BREAK_IN|DATE||
23
+ |OUT_TIME|DATE||
24
+
7
25
  ### 発生している問題・エラーメッセージ
8
26
 
9
27
  ```
10
- Warning: oci_execute(): ORA-00933
28
+ Warning: oci_execute(): ORA-00933: SQLコマンドが正しく終了されていません。
29
+
30
+ php上で実行した場合文字化けしているので、Oracle上で同等の文を実行した際のエラーメッセージを表記しています。
11
31
  ```
12
32
 
13
33
  ### 該当のソースコード
@@ -15,7 +35,7 @@
15
35
  ```PHP
16
36
  $sql = "INSERT INTO WORK_TIME (EMP_ID,IN_TIME)
17
37
  VALUES (:id, SYSDATE)
18
- WHERE EXISTS (SELECT *
38
+ WHERE EXISTS (SELECT * //エラーが表示される行
19
39
  FROM EMP_DATA
20
40
  WHERE EMP_ID = :id AND EMP_PASS = :pass)";
21
41
  $stid = oci_parse($conn,$sql);
@@ -23,7 +43,26 @@
23
43
  oci_bind_by_name($stid, ':pass', $pass);
24
44
  oci_execute($stid);
25
45
  ```
46
+ 行3でエラーが発生しました。:
47
+ ORA-00933: SQLコマンドが正しく終了されていません。
26
48
 
49
+ 同等の文をOracle上で動かしても同様のエラーが表示されます。
50
+
27
51
  ### 試したこと
28
52
 
29
- 構文、テーブル名カラム名の見直し書き直し
53
+ 構文、テーブル名カラム名の見直し書き直し
54
+
55
+ 値は直接入力ですが、Oracle上で動作確認を行った文
56
+ SELECT * FROM WORK_TIME WHERE EXISTS
57
+ (SELECT * FROM EMP_DATA WHERE EMP_ID = [値] AND EMP_PASS = [値]);
58
+
59
+ INSERT INTO WORK_TIME (EMP_ID,IN_TIME)
60
+ VALUES ([値], SYSDATE);
61
+
62
+
63
+ ### 補足情報(FW/ツールのバージョンなど)
64
+
65
+ os:windows10
66
+ DB:Oracle 18c XE
67
+ ブラウザ:googlechrome
68
+ xmappを使いローカル環境でPHP,Oracle共に同一PCで作動させています。