使用PHP進行多列查詢的研究問題
P粉242126786
2023-07-26 17:32:50
<p>我有一個問題。我需要透過在PHP上使用POST方法給定的子字串來查詢包含該子字串的所有文字。例如,如果我輸入一個"a"或一個類似"1"的數字(字元而不是整數),我需要找到包含該字元或子字串的所有內容,並檢查表中的每一列是否可能?我嘗試過像這樣的方法,但是程式碼有些混亂。 </p>
<pre class="brush:php;toolbar:false;"><?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$usersearch = $_POST["usersearch"];
try {
require_once "includes/dbh.inc.php";
$query = "SELECT * FROM tlattine WHERE
tipologia LIKE :usersearch OR
nome LIKE :usersearch OR
caratteristiche LIKE :usersearch OR
tabstyle LIKE :usersearch OR
tabcolor LIKE :usersearch OR
topstyle LIKE :usersearch OR
topcolor LIKE :usersearch OR
provenienza LIKE :usersearch OR
produttore LIKE :usersearch OR
sku LIKE :usersearch
ORDER BY tipologia, provenienza, year, dimensione;";
$stmt = $pdo->prepare($query);
$stmt->bindParam(":usersearch", $usersearch);
$stmt->execute();
$results = $stmt->fetchAll(PDO::FETCH_ASSOC);
$pdo = null;
$stmt = null;
} catch (PDOException $e) {
die("Query failed: " . $e->getMessage());
}
}
else{
header("Location: ../index.php");
}
?></pre>
<p>已經嘗試過使用'%:usersearch%'或以任何形式組合%,但似乎我漏掉了某些東西,我完全確定,但我找不到它 :(</p>
看到你的查詢,我注意到你多次使用了參數:usersearch。
PHP文件中提到:
我更傾向於避免啟用模擬模式,而是更改命名佔位符為位置佔位符(使用'?'代替':usersearch') ,然後使用
#最後一件事,如果你要查詢使列包含$usersearch變量,你可能應該在字串的開頭和結尾添加%。