我有一个包含动态数量字符串的数组
$arr = array("aaaaa", "bbbbb", "ccccc");
如何创建SQL语句,如:
$sql = "SELECT * FROM table WHERE name=? OR name=? OR name=?";
$query = $this->db->query($sql, $arr));
动态
答案 0 :(得分:2)
如果您正在使用CI查询生成器,则可以使用where_in
(也称or_where_in
)个函数。
http://www.codeigniter.com/userguide3/database/query_builder.html#looking-for-specific-data
$这 - > DB-> where_in()
生成WHERE字段IN('item','item')SQL查询与AND连接(如果适用)
$ names = array(' Frank',' Todd',' James');
$ this-> db-> where_in(' username',$ names);
//生成:WHERE用户名IN(' Frank',' Todd',' James')
$arr = array('a','b','c');
$this->db->where_in('name', $arr);
答案 1 :(得分:0)
这可能会满足您的需求。它将根据您的数组大小动态创建一个SQL查询。
$arr = array("aaaaa", "bbbbb", "ccccc");
$sql = "SELECT * FROM table WHERE";
for($i = 0; $i < count($arr); $i ++){
if($i > 0){
$sql .= " OR ";
}
$sql .= " name=?";
}
echo $sql; // SELECT * FROM table WHERE name=? OR name=? OR name=?
答案 2 :(得分:0)
如何使用array_fill()
?
def "When i decide create new product"() {
def future = new CompletableFuture<Boolean>()
when:
repository.checkProductExists("Fake string") >> future
future.complete(true)
def result = this.factory.create(fakeOfferData())
then:
result instanceof Product
}