  | 
                       | 
          
            
               
                 การใช้ prepare แบบที่เขียน ไม่ได้ประโยชน์ ในเรื่อง sql injection เพราะ data request ไม่ได้ถูกแปลงค่า 
ต้อง bind parameter เพื่อจะได้ทำการตรวจสอบ และ แปลงค่า ก่อน 
ส่วนคำสั่ง where like ให้รวม field ที่ใช้ตรวจสอบ เหมือนกันก่อนตรวจสอบ จะได้สั้นลง  
เปลี่ยนเป็น 
Code (PHP) 
$param = "%{$bookKey}%";
$sql="SELECT * FROM book B INNER JOIN categories C on B.cat_id = C.cat_id 
WHERE concat(B.book_nameTH,'|', B.book_nameEN,'|', B.book_aut1,'|', B.book_aut2,'|', B.book_aut3,'|', B.book_ISBN,'|', B.book_id,'|', B.book_ta) Like ? ";
$select_stmt = $conn->prepare( $sql); 
$select_stmt->bind_param('s', $param); 
$select_stmt->execute();
 
แต่จะว่าไป แค่นี้ยังถือว่าสั้นนะครับ 55555  
ถ้าไปเจอ join กัน 10 ตาราง ยาวกว่า 1 หน้ากระดาษ a4 ไม่ตายเหรอ                        
               
               | 
             
            
              
			                              
                              
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2019-02-19 07:01:54 | 
                        By :
                            Chaidhanan | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             |