回答編集履歴

2

追記

2018/11/15 15:38

投稿

tanat
tanat

スコア18711

test CHANGED
@@ -69,3 +69,129 @@
69
69
  `SQLSTATE[HY000]: General error: 1 no such table: product`
70
70
 
71
71
  のように、productテーブルが無い旨エラーが表示されます。
72
+
73
+
74
+
75
+ ---
76
+
77
+
78
+
79
+ 追記
80
+
81
+
82
+
83
+ 恐らく、直すだけな以下の様な感じでしょうか。
84
+
85
+
86
+
87
+ ```
88
+
89
+ <?php
90
+
91
+
92
+
93
+ <?php
94
+
95
+
96
+
97
+ $dbname = "sqlite:pdb.db";
98
+
99
+ $usrname = "";
100
+
101
+ $psword = "";
102
+
103
+
104
+
105
+ $db = new PDO($dbname);
106
+
107
+
108
+
109
+ $db->exec("DROP TABLE IF EXISTS product");
110
+
111
+ $db->exec("CREATE TABLE product(id INTEGER PRIMARY KEY,name STRING,price INTEGER)");
112
+
113
+
114
+
115
+ $qry=array(
116
+
117
+ "INSERT INTO product (name, price) VALUES('鉛筆', 80)",
118
+
119
+ "INSERT INTO product (name, price) VALUES('消しゴム', 50)",
120
+
121
+ "INSERT INTO product (name, price) VALUES('定規', 200)",
122
+
123
+ "INSERT INTO product (name, price) VALUES('コンパス', 300)",
124
+
125
+ "INSERT INTO product (name, price) VALUES('ボールペン', 100)"
126
+
127
+ );
128
+
129
+ foreach($qry as $value){
130
+
131
+ $db->exec($value);
132
+
133
+ }$qry="SELECT * FROM product";
134
+
135
+ $data= $db->query($qry);
136
+
137
+
138
+
139
+ $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
140
+
141
+
142
+
143
+ try{
144
+
145
+
146
+
147
+ $word = null;
148
+
149
+
150
+
151
+ if(isset($_POST["word"]))
152
+
153
+ $word = $_POST["word"];
154
+
155
+
156
+
157
+ $qry = "SELECT * FROM product WHERE name LIKE :word";
158
+
159
+ $word = "%" . $word . "%";
160
+
161
+ $stmt = $db->prepare($qry);
162
+
163
+ var_dump($stmt);
164
+
165
+ $stmt->bindParam(":word", $word);
166
+
167
+ $stmt->execute();
168
+
169
+
170
+
171
+ while($value = $stmt->fetch()){
172
+
173
+ $id = $value["id"];
174
+
175
+ $name = $value["name"];
176
+
177
+ $price = $value["price"];
178
+
179
+ print "<tr><td>{$id}</td><td>{$name}</td><td>{$price}</td></tr>\n";
180
+
181
+ }
182
+
183
+
184
+
185
+
186
+
187
+ }catch(Exception $e){
188
+
189
+ echo $e->getMessage();
190
+
191
+
192
+
193
+ }
194
+
195
+
196
+
197
+ ```

1

追記

2018/11/15 15:38

投稿

tanat
tanat

スコア18711

test CHANGED
@@ -60,6 +60,12 @@
60
60
 
61
61
  多分、これより前の問題で用意している(であろう)DBのテーブルが無いとかそういう準備不足な気がします。
62
62
 
63
+ (その場合、書籍を持っていない人には回答出来ないので少し前の設問から順に試しなおしてみるなどが良いかなと思います。)
63
64
 
64
65
 
66
+
67
+ 何も準備していない私の環境だと
68
+
65
- その場合、書籍を持っていない人には回答出来ないので少し前の設問から順に試しなおしてみるなどが良いかなと思います。
69
+ `SQLSTATE[HY000]: General error: 1 no such table: product`
70
+
71
+ のように、productテーブルが無い旨エラーが表示されます。