دریافت (select) اطلاعات از MYSQL با PHP

اطلاعات از MYSQL با PHP – اینکه چطور بتوانیم از MYSQL با استفاده از PHP اطلاعات دریافت کنیم با روش های مختلفی امکان پذیر است .
هم به صورت procedural و هم object oriented که روشی که ما به برنامه نویسان توصیه می کنیم object oriented که باعث راحت تر شدن کدنویسی و عیب یابی می شود .
جالب اینجا هست که PHP دست ما را باز گذاشته و دو کلاس قدرتمند برای تعامل با MYSQL پیش روی ما قرار داده PDO و mysqli که بیش تر استفاده مان از mysqli می باشد .
نکته جالب دیگر این است که اگر از stmt در این دو کلاس استفاده کنید خیالتان از بابت sql injection راحت می شود ( ;
توصیه می شود قبل از شروع کار این آموزش را بررسی کنید .
دریافت اطلاعات از MYSQL بدون stmt
در صورتی ورودی از کاربر دریافت نمی کنید نیازی به استفاده از stmt نیست و می توان به عادی استفاده کرد .
در خط 6 کد set_charset را بر روی utf8 گذاشته ایم که اگر داده ای دریافت یا ارسال شد به صورت صحیح کاراکتر های پارسی را انتقال دهد .
$mysqli = new mysqli("localhost", "root", "", "demo_db"); if ($mysqli->connect_error) { die("MYSQL ISSUE : " . $mysqli->connect_error); } $mysqli->set_charset("utf8"); $query = "SELECT * FROM `my_tbl`"; $rows = []; if ($res = $mysqli->query($query)) { if ($res->num_rows) { while ($row = $res->fetch_assoc()) { $rows[] = $row; } } $res->close(); } var_dump($rows); $mysqli->close();
دریافت اطلاعات از MYSQL با stmt
اگر اطلاعات از کاربر دریافت می کنید حتما از stmt استفاده کنید که با خطا sql inejction مواجه نشوید .
پس از اینکه دیگر نیازی به stmt و mysqli نداشتید می توانید با استفاده از تابع close کانال استفاده از این منابع را ببندید .
$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 = "'content_2"; $query = "SELECT * FROM `my_tbl` WHERE content=?"; $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();
ارسال نظر