علی رضا
2 سال پیش توسط علی رضا مطرح شد
2 پاسخ

کوئری چک کردن مقدار در sql

سلام برای چک کردن وجود یک رکورد باید از چه روشی استفاده کنم برای مثال کد زیر

$user = $db->query("SELECT \* FROM `users` WHERE `user_id` = $fromid");

if ($user){  
send('ok');  
} else {  
send('no');  
$db->query("INSERT INTO `users` (`user_id`, `step`) VALUES ($fromid, null)");  
}  

در صورت بودن و نبودن مقدار true برمیگردونه


ثبت پرسش جدید
میکائیل
تخصص : برنامه نویسی سمت سرور و کلاینت
@FullStack 2 سال پیش آپدیت شد
0

سلام دوست عزیز
درست توضیح ندادید که میخواید با چه روشی به دیتابیس وصل بشید ولی من کدشو مینویسم حالا کد sql رو نیاز داشتی میتونی استفاده کنی کد به این شکل میشه

$user = $conn->prepare("SELECT * FROM users WHERE user_id = $from_id");
$user->execute();
$result = $user->get_result();

if ($result->num_rows > 0) {
    send('ok');
} else {
    $user = $conn->prepare("INSERT INTO users (user_id, step) VALUES ($from_id, null)");
    $user->execute();
    send('no');
}

اگر با یه روش دیگه به دیتابیس متصل میشی و کد اون رو میخوای بگو ایدیم رو هم تگ کن دیدم روشی که میخوای رو برات کدشو میزارم


محمد شریف احمدی
تخصص : یک عدد برنامه نویس
@mrahmadi 2 سال پیش مطرح شد
0

سلام،
برای چک کردن وجود یک رکورد در SQL، می‌توانید از دو روش استفاده کنید:
۱) استفاده از فرمان EXISTS در SQL:
این روش از نظر عملکرد بهتر است زیرا فقط یک رکورد لازم است و در نتیجه بهینه تر عمل می کند.
می توانید کوئری زیر را استفاده کنید:

SELECT EXISTS(SELECT 1 FROM users WHERE user_id = $fromid LIMIT 1)

این کد True یا False برمیگرداند که می تواند توسط شما برای اتخاذ تصمیم در کد PHP شما استفاده شود.

۲) استفاده از COUNT و IFNULL:
می توانید از کوئری زیر استفاده کنید:

SELECT IFNULL(COUNT(),0) as user_count FROM users WHERE user_id = $fromid

اگر استفاده کنید IFNULL، مطمئن باشید که مقدار 0 برگردانده خواهد شد اگر کوئری نتیجه ای نداشته باشد. اگر مقدار بازگشتی برابر با 0 نبود، رکورد موجود است.
در کد PHP خود می‌توانید مقدار user_count را با استفاده از شرط if بررسی کنید. به عنوان مثال:

$user_count = $db->query("SELECT IFNULL(COUNT(),0) as user_count FROM users WHERE user_id = $fromid");

if ($user_count > 0) {

send('ok');

} else {

send('no');

$db->query("INSERT INTO users (user_id, step) VALUES ($fromid, null)");

}

امیدوارم که پاسخ من به شما کمک کند.


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام