質問編集履歴
3
php追加
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上での動作確認 追加
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
テーブルデータ、試したこと、バージョン等の情報追加
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で作動させています。
|