我有一个变量 ( $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 不是很好,所以我猜我的语法在某个地方是错误的。
预先感谢您的帮助。