1
我正在試圖製作一個簡單的搜索功能,它將從列中選擇並顯示所有內容。準備好的語句中的動態列表
if(isset($_GET["search"]) && ($_POST["filter"] != "all")) {
$filter = $_POST["filter"];
$sql = "SELECT :table FROM johnson LIMIT 0,30";
$stmt = $dbh->prepare($sql);
$stmt->bindValue(":table", $filter, PDO::PARAM_STR);
$stmt->execute();
}
這段代碼似乎正常工作。
然後我試圖來顯示數據:
<?php } else if($filter != "all") { ?>
<tr>
<td><?php echo $row["$filter"]; ?></td>
</tr>
<?php
}
$filter
用正確的數據庫列對應,就像如果$filter == 'email'
,它應該是SELECT email FROM johnson
。
結果呢?查詢數據庫之後,它只是循環的列名,如:
email
email
email
email
而且不[email protected]
等的哪些錯誤?使用PDO::FETCH_ASSOC
。
它甚至可以在硬編碼時使用,而不是使用:table
。
因此沒有解決方法?我只需要對每列有1個查詢?比如「SELECT email FROM ...」,「SELECT employee FROM ...」等等? :/ – DreamHawk
@DreamHawk不,只需列出像'SELECT email,foo,bar FROM table'這樣的列。 – Bojangles
好吧,我做了一個簡單的開關箱,開關($ filter) - 電子郵件 - >選擇電子郵件從...,並且工作!謝謝 :) – DreamHawk