PDA

View Full Version : سوال: چطور باید تشخیص بدم که آیا یه اتصال به دیتابیس از قبل وجود داشته؟



idocsidocs
سه شنبه 14 تیر 1390, 13:40 عصر
به کمک چه تابعی می تونم تشخیص بدم که آیا یه اتصال به دیتابیس از قبل وجود داشته یا نه؟

amirkhezri
سه شنبه 14 تیر 1390, 16:46 عصر
با استفاده از تابع

mysql_ping ([ resource $link_identifier ] )

مثلا


$conn = mysql_connect('localhost', 'mysqluser', 'mypass');
if (!mysql_ping($conn)) {
echo 'Lost connection, exiting after query #1';
exit;
}

idocsidocs
سه شنبه 14 تیر 1390, 18:25 عصر
با استفاده از تابع

mysql_ping ([ resource $link_identifier ] )

مثلا


$conn = mysql_connect('localhost', 'mysqluser', 'mypass');
if (!mysql_ping($conn)) {
echo 'Lost connection, exiting after query #1';
exit;
}

اگر بدون استفاده از تابع mysql_connect و فقط با استفاده از شرط if(!$conn) این مسئله رو چک کنیم، در شرایط مختلف مشکلی در کار پیش نمیاد؟

MMSHFE
چهارشنبه 15 تیر 1390, 09:40 صبح
با سلام، نه مشكلي پيش نمياد. البته به شرطي كه يكسري قواعد براي كار خودتون بگذارين. مثلاً توي يك سايت، هميشه از نام conn$ براي اتصال استفاده كنيد. بعد اين كد رو موقع اتصال بنويسيد:


if(!(isset($conn) && mysql_ping($conn)))
{
$conn = mysql_connect('localhost', 'root', '');
}

موفق باشيد.

mtchabok
چهارشنبه 15 تیر 1390, 11:47 صبح
دوستان یه سوالی واسم پیش اومده ... مگه میشه متغیری که هنوز ایجاد نشده و مقدار اولیه نداره در mysql_ping ازش استفاده کرد .
در ضمن mysql_ping زمانی استفاده میشه که ما یه اسکریپتی داریم که زمان اجرای زیادی داره و مدت زمان زیادی در حال اجرا هس و با این پینگ میتونیم متوجه شیم که آیا mysql server ارتباط رو بسته یا نه . کار mysql_ping مگه همین نیس ؟

MMSHFE
چهارشنبه 15 تیر 1390, 12:04 عصر
دقيقاً. دوست گرامي mysql_ping ميگه كه آيا اتصال هنوز قابل استفاده هست يا نه. اگه دقت كنيد توي كد من از isset استفاده كردم كه ببينم آقا لينك قبلاً ايجاد شده يا نه. اگه ايجاد شده باشه، بعد چك ميكنه ببينه هنوز قابل استفاده هست يا نه. دقت كنيد كه از && استفاده كردم. درنتيجه، اگه شرط اول false باشه، دومي اصلاً چك نميشه.
موفق باشيد.

idocsidocs
چهارشنبه 15 تیر 1390, 13:10 عصر
دقيقاً. دوست گرامي mysql_ping ميگه كه آيا اتصال هنوز قابل استفاده هست يا نه. اگه دقت كنيد توي كد من از isset استفاده كردم كه ببينم آقا لينك قبلاً ايجاد شده يا نه. اگه ايجاد شده باشه، بعد چك ميكنه ببينه هنوز قابل استفاده هست يا نه. دقت كنيد كه از && استفاده كردم. درنتيجه، اگه شرط اول false باشه، دومي اصلاً چك نميشه.
موفق باشيد.
من توی همه اسکریپتهام باید چک کنم که آیا اتصال وجود داره یا نه. آیا mysql_ping روی سرعت تاثیر منفی نداره؟

amirkhezri
چهارشنبه 15 تیر 1390, 13:57 عصر
اجرای این دستور اولا تو سرور هستش و تنها حداکثر شش صدم ثانیه طول می کشه اجراش البته میانگین سه صدم
فکر نکنم ناثیر زیادی داشته باشه
ولی اساتید که تجربه ی بیشتری داند نظر بدهند تا مطمئن بشیم