Hàm “sprintf” trong PHP
Điểm khác nhau lớn nhất là cách bạn gán biến vào trong chuỗi. Ở cách 1 bạn gán thẳng $username và $password vào trong chuỗi, còn cách 2 thì hàm sprintf() lấy tham số $username và $password đã khai báo gán theo thứ tự từ trước ra sau. $username = “HoangKim”; $password = 123; $query1 = “SELECT * FROM users WHERE username=’$username’ AND password =’$password'”; $query2 = sprintf(“SELECT * FROM users WHERE username=’%s’ AND password =’%s'”, $username, $password); echo $query1; //SELECT * FROM users WHERE username=’HoangKim’ AND password =’123′ echo $query2; //SELECT * FROM users WHERE username=’HoangKim’ AND password =’123′ Kết quả trả ra là như nhau. Thế nhưng trong trường hợp vô tình truy vấn ngược lại mà quên đổi thứ tự tham số trong hàm sprintf(): $username = “HoangKim”; $password = 123; $query1 = “SELECT * FROM users WHERE password=’$password’ AND username =’$username'”; $query2 = sprintf(“SELECT * FROM users WHERE password=’%s’ AND username=’%s'