جستجو (WHERE LIKE) در دیتابیس MYSQL با PHP

جستجو (WHERE LIKE) در دیتابیس MYSQL با PHP

جستجو در MYSQL با PHP – از کاربرد های اصلی هر دیتابیس امکان جستجو در رکورد موجود است که خوشبختانه MYSQL در این موضوع به خوبی عمل می کند .

زمانی که می خواهیم جستجویی را در بین رکورد ها انجام دهیم به جای استفاده از =WHERE از WHERE LIKE استفاده می کنیم .
تا مواردی را که بیشترین شباهت را به موردی که جستجو کرده ایم را برگرداند

نه اینکه باید به دنبال رکورد هایی باشد که دقیقا با کلمه جستجو شده یکی باشد .

توصیه می شود قبل شروع کار 2 مقاله زیر را مطالعه کنید :

1- ایجاد پایگاه داده MYSQL با PHP
2- دریافت اطلاعات از MYSQL با PHP

جستجو در MYSQL با PHP و stmt

در اکثر جستجو ها کاربر ورودی را تعیین می کند بنابراین امکان پیدایش باگ sql injection وجود دارد پس از stmt کمک می گیریم تا با این باگ خطرناک روبرو نشویم .

$mysqli = new mysqli("localhost", "root", "", "demo_db");
if ($mysqli->connect_error) {
    die("MYSQL ISSUE : " . $mysqli->connect_error);
}
 
$mysqli->set_charset("utf8");
$stmt = $mysqli->stmt_init();


$user_input = "let's have some fun";
$user_input = "%$user_input%";
 
$query = "SELECT * FROM `my_tbl` WHERE content LIKE ?";
$rows = [];
 
$stmt->prepare($query);
$stmt->bind_param('s' , $user_input);
 
if ($stmt->execute() && $res = $stmt->get_result()) {
    if ($stmt->affected_rows || $res->num_rows) {
        while ($row = $res->fetch_assoc()) {
            $rows[] = $row;
        }
    }
}
 
var_dump($rows);
 
$stmt->close();
$mysqli->close();

ارسال نظر

جهت استفاده از کد حتما از تگ pre استفاده نمایید .

contact us