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

دریافت (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();

ارسال نظر

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

contact us