回答編集履歴
4
誤字修正
answer
CHANGED
@@ -30,10 +30,25 @@
|
|
30
30
|
|
31
31
|
---
|
32
32
|
|
33
|
+
```PHP
|
34
|
+
|
33
|
-
|
35
|
+
$qPart = array_fill( 0, count( $userData ), "(?, ?, ?, ?, ?)" );
|
36
|
+
|
37
|
+
```
|
38
|
+
|
34
39
|
↑`$userData`が未定義なので
|
40
|
+
|
41
|
+
|
42
|
+
```
|
35
|
-
|
43
|
+
foreach ( $userData as $row ) { //bind the values one by one
|
44
|
+
|
45
|
+
```
|
46
|
+
|
36
47
|
↑foreachの中の処理が多分実行されていない
|
37
48
|
|
49
|
+
|
50
|
+
```PHP
|
38
|
-
|
51
|
+
$stmt->bindValue( $i++, $row[ '%' . preg_replace( '/(?=[!_%])/', '!', $search_name ) . '%' ], PDO::PARAM_STR );
|
52
|
+
```
|
53
|
+
|
39
54
|
↑`$stmt`も未定義なので、foreachの処理が実行されたらエラーになるはず
|
3
補足
answer
CHANGED
@@ -26,4 +26,14 @@
|
|
26
26
|
なのに、`return`より後に記述されているのでSELECT文が実行されていません。
|
27
27
|
|
28
28
|
---
|
29
|
-
まずは[PHPマニュアル](https://www.php.net/manual/en/pdostatement.execute.php)を参考にして、最低限の機能とコードでPDOの挙動について把握されることをお勧めします。
|
29
|
+
まずは[PHPマニュアル](https://www.php.net/manual/en/pdostatement.execute.php)を参考にして、最低限の機能とコードでPDOの挙動について把握されることをお勧めします。
|
30
|
+
|
31
|
+
---
|
32
|
+
|
33
|
+
``` $qPart = array_fill( 0, count( $userData ), "(?, ?, ?, ?, ?)" );```
|
34
|
+
↑`$userData`が未定義なので
|
35
|
+
```foreach ( $userData as $row ) { //bind the values one by one```
|
36
|
+
↑foreachの中の処理が多分実行されていない
|
37
|
+
|
38
|
+
``` $stmt->bindValue( $i++, $row[ '%' . preg_replace( '/(?=[!_%])/', '!', $search_name ) . '%' ], PDO::PARAM_STR );```
|
39
|
+
↑`$stmt`も未定義なので、foreachの処理が実行されたらエラーになるはず
|
2
修正
answer
CHANGED
@@ -5,19 +5,10 @@
|
|
5
5
|
|
6
6
|
と言うのがまだよくわかりませんが、
|
7
7
|
|
8
|
-
とりあえず気づいた点としては、
|
9
|
-
```PHP
|
10
|
-
|
8
|
+
`addcslashes`について`addslashes`と誤解していたので削除
|
11
|
-
$UserDataSet->bindValue( $i++, $row[ '%' . addcslashes( $search_name, '\_%' ) . '%' ], PDO::PARAM_STR );
|
12
|
-
$UserDataSet->bindValue( $i++, $row[ '%' . addcslashes( $color, '\_%' ) . '%' ], PDO::PARAM_STR );
|
13
|
-
$UserDataSet->bindValue( $i++, $row[ '%' . addcslashes( $category, '\_%' ) . '%' ], PDO::PARAM_STR );
|
14
|
-
}
|
15
|
-
```
|
16
9
|
|
17
|
-
|
10
|
+
そもそも論として
|
18
11
|
|
19
|
-
また、そもそも論として
|
20
|
-
|
21
12
|
```PHP
|
22
13
|
|
23
14
|
//扱いやすい形に変える
|
1
補足
answer
CHANGED
@@ -32,4 +32,7 @@
|
|
32
32
|
で、
|
33
33
|
SQLが実行されるのは
|
34
34
|
`$UserDataSet->execute();`
|
35
|
-
なのに、`return`より後に記述されているのでSELECT文が実行されていません
|
35
|
+
なのに、`return`より後に記述されているのでSELECT文が実行されていません。
|
36
|
+
|
37
|
+
---
|
38
|
+
まずは[PHPマニュアル](https://www.php.net/manual/en/pdostatement.execute.php)を参考にして、最低限の機能とコードでPDOの挙動について把握されることをお勧めします。
|