-2

私はphpが初めてで、1つのクエリを動的に作成しようとしています。これは、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 に答える