2017-04-13 68 views
0

下面是我的表:如何使用綁定在PARAM笨在MySQL IN操作符

CREATE TABLE `sku` (
    `id` int(11) NOT NULL, 
    `sk_val` text CHARACTER SET utf8 COLLATE utf8_unicode_ci, 
    `date_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP 
) ENGINE=InnoDB DEFAULT CHARSET=latin1; 

INSERT INTO `sku` (`id`, `sk_val`, `date_time`) VALUES 
(3, '[removed]alert('xss');[removed]', '2017-04-12 12:58:38'), 
(4, '[removed]alert('xss');[removed]', '2017-04-12 13:46:34'); 

我使用CI框架。當我嘗試從sku表中獲取數據時,它返回false。以下是我的代碼。

$query = "SELECT * FROM sku WHERE sk_val IN (?)"; 
$result = $this->db->query($query, array("[removed]alert('xss');[removed]")); 

任何幫助將不勝感激。提前致謝。

回答

0

您是否嘗試過使用FIND_IN_SET(field_name,param)而不是IN(param)?通常情況下,FIND_IN_SET就像一個param的魅力一樣工作。然後你可以這樣寫你的查詢:

$query = "SELECT * FROM sku WHERE FIND_IN_SET(sk_val,?); 
$result = $this->db->query($query, array("[removed]alert(\'xss\');[removed]")); 

希望這會有所幫助。

+0

你的代碼不工作。仍然是虛假的 – Alok