質問編集履歴

2

修正

2018/12/29 05:34

投稿

bws
bws

スコア98

test CHANGED
File without changes
test CHANGED
@@ -1,6 +1,26 @@
1
1
  ユーザーがユニークかどうか調べるコードで疑問が出てきたので質問させてください。
2
2
 
3
3
  以下のSQL文で取り出した**$row['count']**はなぜ文字列になるのでしょうか?
4
+
5
+ '0'にしないとtrueにならないです。
6
+
7
+
8
+
9
+ 【追記】
10
+
11
+ ```PHP
12
+
13
+ // false
14
+
15
+ $row['count'] === 0
16
+
17
+
18
+
19
+ //true
20
+
21
+ $row['count'] === '0'
22
+
23
+ ```
4
24
 
5
25
 
6
26
 

1

継承しているクラスのコードを追加しました

2018/12/29 05:34

投稿

bws
bws

スコア98

test CHANGED
File without changes
test CHANGED
@@ -12,18 +12,52 @@
12
12
 
13
13
  ```PHP
14
14
 
15
- $sql = "SELECT COUNT(id) as count FROM user WHERE user_name = :user_name";
15
+ class User extends Base
16
16
 
17
- $row = $this->fetch($sql, array(':user_name' => $user_name));
17
+ {
18
18
 
19
- if ($row['count'] === '0') {
20
19
 
20
+
21
+ public function isUnique($user_name) {
22
+
23
+
24
+
25
+ $sql = "SELECT COUNT(id) as count FROM user WHERE user_name = :user_name";
26
+
27
+ $row = $this->fetch($sql, array(':user_name' => $user_name));
28
+
29
+ if ($row['count'] === '0') {
30
+
21
- return true;
31
+ return true;
32
+
33
+ }
34
+
35
+
36
+
37
+ return false;
38
+
39
+ }
22
40
 
23
41
  }
24
42
 
43
+ ```
25
44
 
26
45
 
46
+
47
+ ```PHP
48
+
27
- return false;
49
+ abstract class Base
50
+
51
+ {
52
+
53
+ public function fetch($sql, $params = array())
54
+
55
+ {
56
+
57
+ return $this->execute($sql, $params)->fetch(PDO::FETCH_ASSOC);
58
+
59
+ }
60
+
61
+ }
28
62
 
29
63
  ```