Soalan kajian tentang pertanyaan berbilang lajur menggunakan PHP
P粉242126786
P粉242126786 2023-07-26 17:32:50
0
1
471
<p>Saya ada soalan. Saya perlu menanyakan semua teks yang mengandungi subrentetan yang diberikan dengan menggunakan kaedah POST pada PHP. Contohnya, jika saya memasukkan "a" atau nombor seperti "1" (aksara bukan integer), adakah saya perlu mencari semua yang mengandungi aksara atau subrentetan itu dan semak setiap lajur dalam jadual jika boleh? Saya telah mencuba sesuatu seperti ini, tetapi kodnya agak kemas. </p> <pre class="brush:php;toolbar:false;"><?php jika ($_SERVER["REQUEST_METHOD"] == "POST") { $usersearch = $_POST["usersearch"]; cuba { memerlukan_sekali "termasuk/dbh.inc.php"; $query = "PILIH * DARI tlattine DI MANA tipologia SUKA :usersearch ATAU nome LIKE :usersearch ATAU caratteristiche LIKE :usersearch ATAU tabstyle LIKE :usersearch ATAU tabcolor SEPERTI :usersearch ATAU topstyle LIKE :usersearch ATAU topcolor SEPERTI :usersearch ATAU provenienza SUKA :usersearch ATAU produttore LIKE :usersearch ATAU sku LIKE :usersearch ORDER OLEH tipologia, provenienza, tahun, dimensi;"; $stmt = $pdo->prepare($query); $stmt->bindParam(":usersearch", $usersearch); $stmt->execute(); $results = $stmt->fetchAll(PDO::FETCH_ASSOC); $pdo = null; $stmt = null; } tangkapan (PDOException $e) { die("Query failed: " . $e->getMessage()); } } lain{ header("Lokasi: ../index.php"); } ?></pra> <p>Sudah cuba menggunakan '%:usersearch%' atau menggabungkan % dalam sebarang bentuk tetapi nampaknya saya kehilangan sesuatu, saya benar-benar pasti tetapi saya tidak menemuinya :(</p>
P粉242126786
P粉242126786

membalas semua(1)
P粉793532469

Melihat pada pertanyaan anda, saya perhatikan bahawa anda menggunakan parameter: carian pengguna beberapa kali.

Dokumentasi PHP menyebut:

Saya lebih suka mengelak daripada mendayakan mod penyamaran dan sebaliknya menukar ruang letak yang dinamakan kepada pemegang tempat kedudukan (gunakan '?' dan bukannya ':usersearch') dan kemudian gunakan


$stmt->bindParam(1, $usersearch, PDO::PARAM_STR);
$stmt->bindParam(2, $usersearch, PDO::PARAM_STR);
$stmt->bindParam(3, $usersearch, PDO::PARAM_STR);
// and so on

Satu perkara terakhir, jika anda bertanya supaya lajur mengandungi pembolehubah $usersearch, anda mungkin perlu menambah % pada permulaan dan akhir rentetan.

$usersearch = "%" . $_POST["usersearch"] . "%"
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan