PDA

View Full Version : سوال: جلوگیری از درج رکورد تکراری



Shut Down
دوشنبه 26 خرداد 1393, 00:56 صبح
سلام
من میخوام یک ایمیل و پسورد insert کنم
اما میخوام وقتی ایمیل تو دیتابیس بود insert انجام نشه و یک echo نمایش داده بشه
ممنون میشم کمک کنید

us1234
دوشنبه 26 خرداد 1393, 11:42 صبح
اگر میخواهید هندل از طرف PHP انجام شود . راهش این است که قبل از اینسرت یک سلکت بزنید ( البته نتیجه سلکت برای سرعت بیشتر فقط تعداد ایمیل های مشابه است ) اگر آن count برگشتی بزرگتر از 0 باشد نباید انسرت انجام شود و echo مورد نظر را بدهید .
در mySql هم اگر فیلد یونیک باشد این اتفاق انجام میشود ولی هندل ش در php خیلی سخت ( و حتی نشدی ) است .

Shut Down
دوشنبه 26 خرداد 1393, 12:29 عصر
اگر میخواهید هندل از طرف PHP انجام شود . راهش این است که قبل از اینسرت یک سلکت بزنید ( البته نتیجه سلکت برای سرعت بیشتر فقط تعداد ایمیل های مشابه است ) اگر آن count برگشتی بزرگتر از 0 باشد نباید انسرت انجام شود و echo مورد نظر را بدهید .
در mySql هم اگر فیلد یونیک باشد این اتفاق انجام میشود ولی هندل ش در php خیلی سخت ( و حتی نشدی ) است .
ممنون میشم یکم با کد توضیح بدید یعنی با مثال

us1234
دوشنبه 26 خرداد 1393, 18:23 عصر
ممنون میشم یکم با کد توضیح بدید یعنی با مثال

به دلیل اینکه اینجا قسمت mySql است من فقط کوئری ها را مینوسیم ولی کار سختی نیست .
برای اینکه اول بفهمید ایمیل وجود دارد یا خیر این کوئری :
select count(*) as cmail from tbl_mail where u_mail = 'aa@aa.aa'

اگر cmail بزرگتر از 0 نبود انسرت را انجام بدید .

سعید صابری
دوشنبه 26 خرداد 1393, 21:01 عصر
اگر میخواهید هندل از طرف PHP انجام شود . راهش این است که قبل از اینسرت یک سلکت بزنید ( البته نتیجه سلکت برای سرعت بیشتر فقط تعداد ایمیل های مشابه است ) اگر آن count برگشتی بزرگتر از 0 باشد نباید انسرت انجام شود و echo مورد نظر را بدهید .
در mySql هم اگر فیلد یونیک باشد این اتفاق انجام میشود ولی هندل ش در php خیلی سخت ( و حتی نشدی ) است .
فکر نمی کنی رفیق یک کم داری پیچیده اش می کنی؟

فیلد یونیک کن.


$sql="INSERT INTO table (field1, field2)
VALUES (value1, value2)";

if (!mysql_query($con,$sql)) {
die('Error: ' . mysql_error($con));
}
echo "Add";



اگر تکراری باشه و یا هر خطا دیگه رخ بده خطا برگردانده می شود

us1234
پنج شنبه 29 خرداد 1393, 11:12 صبح
فکر نمی کنی رفیق یک کم داری پیچیده اش می کنی؟

فیلد یونیک کن.


$sql="INSERT INTO table (field1, field2)
VALUES (value1, value2)";

if (!mysql_query($con,$sql)) {
die('Error: ' . mysql_error($con));
}
echo "Add";



اگر تکراری باشه و یا هر خطا دیگه رخ بده خطا برگردانده می شود

راسش پیچیده نمی کنم :لبخند:
ولی اصولش همونه که گفتم . در این کد شما اگر خطا های دیگه ای رخ بده نمایش داده میشه و برای هکری که داره انجکشن میزنه خودش یک امید به وجود میاره .