回答編集履歴

3

書式の改善

2017/10/10 05:56

投稿

退会済みユーザー
test CHANGED
@@ -146,7 +146,11 @@
146
146
 
147
147
  下記コメントでも触れましたが、質問に記載のエラーメッセージは下記行の記述が原因と思われます。
148
148
 
149
+ ```php
150
+
149
- > $stt = &db -> prepare(&sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_SCROLL));
151
+ $stt = &db -> prepare(&sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_SCROLL));
152
+
153
+ ```
150
154
 
151
155
 
152
156
 
@@ -200,11 +204,15 @@
200
204
 
201
205
  対応としては、&を$に置き換えてください。
202
206
 
207
+ ```php
208
+
203
- > $stt = $db -> prepare($sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_SCROLL));
209
+ $stt = $db -> prepare($sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_SCROLL));
210
+
204
-
211
+ ```
205
-
206
-
212
+
213
+
214
+
207
- また、下記箇所SQL中に改行が含まれるので望ましくありません。
215
+ また、下記箇所の記述もSQL中に改行が含まれるので望ましくありません。
208
216
 
209
217
  ```php
210
218
 

2

エラー原因の追記

2017/10/10 05:56

投稿

退会済みユーザー
test CHANGED
@@ -139,3 +139,89 @@
139
139
  </html>
140
140
 
141
141
  ```
142
+
143
+ ---
144
+
145
+ 追記:
146
+
147
+ 下記コメントでも触れましたが、質問に記載のエラーメッセージは下記行の記述が原因と思われます。
148
+
149
+ > $stt = &db -> prepare(&sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_SCROLL));
150
+
151
+
152
+
153
+ ```bash
154
+
155
+ $ cat -n 95631.php
156
+
157
+ 1 <?php
158
+
159
+ 2 $dsn = "mysql:dbname=delivery_system;host=localhost;charset=utf8";
160
+
161
+ 3 $user = "root";
162
+
163
+ 4 $password = "";
164
+
165
+ 5 try{
166
+
167
+ 6 $db = new PDO($dsn,$user,$password);
168
+
169
+ 7 $db->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
170
+
171
+ 8 $sql='insert into delivery_list (name,prefecture,city,address,type,tel,person_name,copies,set_type)
172
+
173
+ 9 values(:name,:prefecture,:city,:address,:type,:tel,:person_name,:copies,:set_type)';
174
+
175
+ 10 $stt = &db -> prepare(&sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_SCROLL));
176
+
177
+ 11 $stt ->execute(array(':name' => [$_POST['name'],':prefecture' => $_POST['prefecture'],':city' => $_POST['city'],':address' => $_POST['address'],':type' => $_POST['type'],':tel' => $_POST['tel'],':peron_name' => $_POST['person_name'],':copies' => $_POST['copies'],':set_type' => $_POST['set_type']]));
178
+
179
+ 12 }catch(PDOException $error){
180
+
181
+ 13 echo "接続失敗:".$error->getMessage();
182
+
183
+ 14 die();
184
+
185
+ 15 }
186
+
187
+ $ php -l 95631.php
188
+
189
+ PHP Parse error: syntax error, unexpected '->' (T_OBJECT_OPERATOR), expecting '(' in 95631.php on line 10
190
+
191
+
192
+
193
+ Parse error: syntax error, unexpected '->' (T_OBJECT_OPERATOR), expecting '(' in 95631.php on line 10
194
+
195
+ Errors parsing 95631.php
196
+
197
+ ```
198
+
199
+
200
+
201
+ 対応としては、&を$に置き換えてください。
202
+
203
+ > $stt = $db -> prepare($sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_SCROLL));
204
+
205
+
206
+
207
+ また、下記箇所はSQL中に改行が含まれるので望ましくありません。
208
+
209
+ ```php
210
+
211
+ $sql='insert into delivery_list (name,prefecture,city,address,type,tel,person_name,copies,set_type)
212
+
213
+ values(:name,:prefecture,:city,:address,:type,:tel,:person_name,:copies,:set_type)';
214
+
215
+ ```
216
+
217
+
218
+
219
+ コード中で改行する場合は、文字列を分割して結合するような対応とした方がよいかと思います。
220
+
221
+ ```php
222
+
223
+ $sql='insert into delivery_list (name,prefecture,city,address,type,tel,person_name,copies,set_type)'
224
+
225
+ . ' values(:name,:prefecture,:city,:address,:type,:tel,:person_name,:copies,:set_type)';
226
+
227
+ ```

1

冒頭追記、文法の修正

2017/10/10 05:54

投稿

退会済みユーザー
test CHANGED
@@ -1,3 +1,9 @@
1
+ エラー内容に記載のエラーの発生箇所は特定できませんでした。
2
+
3
+ ご提示いただいているコードがsystem.phpということで認識あっておりますでしょうか。
4
+
5
+
6
+
1
7
  > ①フォームから格納したデータを呼び出すプログラムのやり方は問題ないでしょうか?
2
8
 
3
9
 
@@ -108,7 +114,7 @@
108
114
 
109
115
  $sql = "SELECT * FROM table_name";
110
116
 
111
- $stmt = $db->query($sql)
117
+ $stmt = $db->query($sql);
112
118
 
113
119
  foreach($stmt as $row){
114
120