-2

我是 php 新手,正在尝试动态创建一个查询。这是我得到 foreach 语法错误的一段代码。你能帮我修复这个错误吗?

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

4 回答 4

1

您在第 2 行末尾缺少一个分号。

于 2013-03-23T17:36:50.010 回答
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']在数据库查询中可以安全地使用这些值。

于 2013-03-23T17:38:04.320 回答
0

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

正确写

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

$query = "SELECT pmid FROM articles WHERE pmid IN ($select)";
于 2013-03-23T17:39:41.877 回答
0

看看这个

$results = array(1,5,6,7);
$select = "SELECT pmid FROM articles WHERE pmid IN (".implode(",", $results).")";
echo $select;
于 2013-03-23T17:40:21.723 回答