PHPでインジェクション対策を参考にSQL文のインジェクション対策を進めています。
下記の関数に対して、$genderはユーザー(外部)から与えられる仮想配列です。
安全なSQLの呼び出し方
の15ページより文字列連結にquoteメソッドを使うことがよいそうですが、表現方法をご教示いただけないでしょうか。
php
1function teacher_search_from_gender($dbh, $gender){ 2 $sql = <<<SQL 3 SELECT `id` 4 FROM `member` 5 WHERE `role` = :role 6SQL; 7 $sql.=' AND `gender` IN ("'.implode('","',$gender).'") '; 8 $stmt = $dbh->prepare($sql); 9 $stmt->bindValue(':role', 2, PDO::PARAM_INT); 10 // $stmt->bindValue(':gender', implode('","',$gender), PDO::PARAM_STR); 11 if($stmt->execute()){ 12 $teacher_id = array(); 13 $teacher_id = $stmt->fetchALL(PDO::FETCH_COLUMN); 14 return $teacher_id; 15 }else{ 16 return FALSE; 17 } 18} 19
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/10/20 11:08
2018/10/21 03:01 編集