質問編集履歴
2
コードを見やすくしました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,20 +1,18 @@
|
|
1
1
|
### 前提・実現したいこと
|
2
2
|
|
3
3
|
PHPでブログを作っています。
|
4
|
-
|
5
|
-
https://youtu.be/nUcNSZfiiWM
|
4
|
+
[【PHP/MySQL入門】](https://youtu.be/nUcNSZfiiWM)
|
6
5
|
こちらの動画をみて進めていったらindex.phpのところでエラーが出ました。
|
7
6
|
|
8
7
|
```
|
9
8
|
エラーメッセージ
|
10
|
-
|
9
|
+
Fatal error: Uncaught PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1 in C:\MAMP\htdocs\dbc.php:35 Stack trace: #0 C:\MAMP\htdocs\dbc.php(35): PDO->query('SELECT * FROM ') #1 C:\MAMP\htdocs\index.php(5): Dbc->getAll() #2 {main} thrown in C:\MAMP\htdocs\dbc.php on line 35
|
10
|
+
```
|
11
|
+
**該当のコード**
|
12
|
+
dbc.php
|
13
|
+
```ここに言語を入力
|
14
|
+
<?php
|
11
15
|
|
12
|
-
### 該当のソースコード
|
13
|
-
|
14
|
-
```ここに言語名を入力
|
15
|
-
ソースコード
|
16
|
-
```**dbc.php**<?php
|
17
|
-
|
18
16
|
Class Dbc
|
19
17
|
{
|
20
18
|
protected $table_name;
|
@@ -54,10 +52,37 @@
|
|
54
52
|
$dbh = null;
|
55
53
|
}
|
56
54
|
|
57
|
-
|
55
|
+
// idから一つのデータを取ってくる
|
56
|
+
// 引数:$id
|
57
|
+
// 返り値:$result
|
58
|
+
public function getById($id) {
|
59
|
+
if(empty($id)) {
|
60
|
+
exit('IDが不正です。');
|
61
|
+
}
|
62
|
+
|
63
|
+
$dbh = $this->dbConnect();
|
64
|
+
|
65
|
+
// SQL準備
|
66
|
+
$stmt = $dbh->prepare("SELECT * FROM $this->table_name Where id = :id");
|
67
|
+
$stmt->bindValue(':id', (int)$id, PDO::PARAM_INT);
|
68
|
+
// SQL実行
|
69
|
+
$stmt->execute();
|
70
|
+
// 結果を取得
|
71
|
+
$result = $stmt->fetch(PDO::FETCH_ASSOC);
|
72
|
+
|
73
|
+
if(!$result) {
|
74
|
+
exit('ブログがありません。');
|
75
|
+
}
|
76
|
+
|
77
|
+
return $result;
|
78
|
+
}
|
79
|
+
|
58
80
|
}
|
59
81
|
?>
|
82
|
+
|
83
|
+
```
|
60
|
-
|
84
|
+
blog.php
|
85
|
+
```ここに言語を入力
|
61
86
|
<?php
|
62
87
|
require_once('dbc.php');
|
63
88
|
|
@@ -104,7 +129,9 @@
|
|
104
129
|
}
|
105
130
|
|
106
131
|
?>
|
132
|
+
```
|
107
|
-
|
133
|
+
index.php
|
134
|
+
```ここに言語を入力
|
108
135
|
<?php
|
109
136
|
require_once('blog.php');
|
110
137
|
ini_set('display_errors', "On");
|
@@ -140,7 +167,7 @@
|
|
140
167
|
</table>
|
141
168
|
</body>
|
142
169
|
</html>
|
143
|
-
|
170
|
+
```
|
144
171
|
### 試したこと
|
145
172
|
|
146
173
|
dbc.phpファイルでtable_nameにblogと入れてやるとエラーが出ません。
|
1
index.php追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -104,8 +104,43 @@
|
|
104
104
|
}
|
105
105
|
|
106
106
|
?>
|
107
|
+
**index,php**
|
108
|
+
<?php
|
109
|
+
require_once('blog.php');
|
110
|
+
ini_set('display_errors', "On");
|
111
|
+
$blog = new Blog();
|
112
|
+
$blogData = $blog->getAll();
|
107
113
|
|
114
|
+
?>
|
108
115
|
|
116
|
+
<!DOCTYPE html>
|
117
|
+
<html lang="en">
|
118
|
+
<head>
|
119
|
+
<meta charset="UTF-8">
|
120
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
121
|
+
<title>ブログ一覧</title>
|
122
|
+
</head>
|
123
|
+
<body>
|
124
|
+
<h2>ブログ一覧</h2>
|
125
|
+
<p><a href="/form.html">新規作成</a></p>
|
126
|
+
<table>
|
127
|
+
<tr>
|
128
|
+
<th>No</th>
|
129
|
+
<th>タイトル</th>
|
130
|
+
<th>カテゴリ</th>
|
131
|
+
</tr>
|
132
|
+
<?php foreach($blogData as $column): ?>
|
133
|
+
<tr>
|
134
|
+
<td><?php echo $column['id']?></td>
|
135
|
+
<td><?php echo $column['title']?></td>
|
136
|
+
<td><?php echo $blog->setCategoryName($column['category']) ?></td>
|
137
|
+
<td><a href="/detail.php?id=<?php echo $column['id'] ?>">詳細</a></td>
|
138
|
+
</tr>
|
139
|
+
<?php endforeach; ?>
|
140
|
+
</table>
|
141
|
+
</body>
|
142
|
+
</html>
|
143
|
+
|
109
144
|
### 試したこと
|
110
145
|
|
111
146
|
dbc.phpファイルでtable_nameにblogと入れてやるとエラーが出ません。
|