foreach在mysql查询中

时间:2013-03-23 17:32:24

标签: php mysql foreach

我是php新手并试图动态创建一个查询。这是我得到foreach语法错误的一段代码。可以请你帮我解决这个问题吗?

    $select = "SELECT pmid FROM articles WHERE pmid IN 
("
    foreach($results as $result) {
        $select .= $result['pmid'] . ',';
    }
    $select = trim($select,','); . 
")
           ";

4 个答案:

答案 0 :(得分:1)

你在第2行的末尾错过了一个分号。

答案 1 :(得分:0)

$pmids = array();
foreach($results as $result) {
    $pmids[] = $result['pmid'];
}

if (!empty($pmids)) {
  $select = 'SELECT pmid FROM articles WHERE pmid IN (' . join(',',$pmids) . ')';
} else {
  $select = 'SELECT pmid FROM articles WHERE 1 = 0';
}

您必须确保$result['pmid']值在数据库查询中可以安全地使用。

答案 2 :(得分:0)

你没有使用正确的方式编写sql查询.. 正确编写

foreach($results as $result) {
    $select .= $result['pmid'] . ',';
}
$select = trim($select,',');

$query = "SELECT pmid FROM articles WHERE pmid IN ($select)";

答案 3 :(得分:0)

看看这个

$results = array(1,5,6,7);
$select = "SELECT pmid FROM articles WHERE pmid IN (".implode(",", $results).")";
echo $select;