我是php新手并试图动态创建一个查询。这是我得到foreach语法错误的一段代码。可以请你帮我解决这个问题吗?
$select = "SELECT pmid FROM articles WHERE pmid IN
("
foreach($results as $result) {
$select .= $result['pmid'] . ',';
}
$select = trim($select,','); .
")
";
答案 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;