$q=$_GET["q"];
準備済みステートメントを実行したい変数 ( ) があります。データベーステーブルの列名が含まれています。
変数の値は、ドロップダウン リストから取得されます。次のコードを実行すると、リストで選択された正確な値が出力されます。したがって、それは単なる列名です。
$q=$_GET["q"];
$dsn = "mysql:host=$host;port=$port;dbname=$database";
$db = new PDO($dsn, $username, $password);
$sql = "SELECT DISTINCT ? FROM repertoire";
$stmt = $db->prepare($sql);
$stmt->execute(array($q));
echo "<select>";
while ( $row = $stmt->fetchObject() ) {
echo "<option>";
echo "{$row->{$q}}";
echo "</option>";
}
echo "</select>";
ただし、この行を変更すると$sql = "SELECT DISTINCT ? FROM repertoire";
データベースから$sql = "SELECT DISTINCT ".$q." FROM repertoire";
必要な行を取得します...
私はPHPがあまり得意ではないので、構文がどこか間違っていると思います。
よろしくお願いいたします。