回答編集履歴
2
chousei
answer
CHANGED
@@ -4,4 +4,29 @@
|
|
4
4
|
|
5
5
|
全部疑問符パラメータにすればよいでしょう
|
6
6
|
|
7
|
-
それとnullはinで拾えないし、疑問符パラメータのprepareで渡せないでしょう
|
7
|
+
それとnullはinで拾えないし、疑問符パラメータのprepareで渡せないでしょう
|
8
|
+
```PHP
|
9
|
+
$year = '2021';
|
10
|
+
$flug = [NULL,1,2,3,4];
|
11
|
+
$data=[];
|
12
|
+
|
13
|
+
$sql="SELECT id FROM sample_tbl WHERE 1 ";
|
14
|
+
if($year){
|
15
|
+
$sql.="AND year = ? ";
|
16
|
+
$data[]=$year;
|
17
|
+
}
|
18
|
+
if(count($flug)){
|
19
|
+
$sql.="AND (0 ";
|
20
|
+
if(in_array(null,$flug,true)){
|
21
|
+
$sql.="OR flug is null ";
|
22
|
+
}
|
23
|
+
$flug=array_diff($flug, [null]);
|
24
|
+
if(count($flug)){
|
25
|
+
$sql.="OR flug IN(".implode(",",array_fill(0,count($flug),"?")).")";
|
26
|
+
$data=array_merge($data,$flug);
|
27
|
+
}
|
28
|
+
$sql.=") ";
|
29
|
+
}
|
30
|
+
print $sql.";<br>\n";
|
31
|
+
print_r($data);
|
32
|
+
```
|
1
追記
answer
CHANGED
@@ -2,4 +2,6 @@
|
|
2
2
|
|
3
3
|
「名前と疑問符パラメータを同一の ステートメントのテンプレート中で使用することはできません」
|
4
4
|
|
5
|
-
全部疑問符パラメータにすればよいでしょう
|
5
|
+
全部疑問符パラメータにすればよいでしょう
|
6
|
+
|
7
|
+
それとnullはinで拾えないし、疑問符パラメータのprepareで渡せないでしょう
|