我正在做一个项目,我需要使用准备好的语句来防止 sql 注入。虽然我发现用于查询更新、删除和插入语句的语法。但对于选择查询它不适用于 IN 子语句。我正在尝试执行以下操作:
$arr= 'tomwased,eshantsahu';
$this->_db->fetchAll("select username,password from user where username in (?)",array($arr)));
但它不起作用。我从其他代码中获取字符串 $arr 。
我正在做一个项目,我需要使用准备好的语句来防止 sql 注入。虽然我发现用于查询更新、删除和插入语句的语法。但对于选择查询它不适用于 IN 子语句。我正在尝试执行以下操作:
$arr= 'tomwased,eshantsahu';
$this->_db->fetchAll("select username,password from user where username in (?)",array($arr)));
但它不起作用。我从其他代码中获取字符串 $arr 。
您可以使用如下语句
$productIds = array(1, 2, 3);
$select = $db->select()
->from('products',
array('product_id', 'product_name', 'price'))
->where('product_id IN (?)', $productIds);
并转换为用户
$username = array('tomwased','eshantsahu');
$select = $db->select()
->from('user',
array('username', 'password '))
->where('username IN (?)', $username );
希望这对你有用
$arr = array('tomwased','eshantsahu');
$db = Zend_Registry :: get('db');
$select = $db->select();
$select -> from("user",array('username','password'))
-> where("username in ?",$arr);
$stmt = $db->query($select);
$result = $stmt->fetchAll();