PDA

View Full Version : سوال: خالی (empty) کردن محتویات همه جدولهای یک دیتابیس



idocsidocs
سه شنبه 05 اردیبهشت 1391, 20:21 عصر
چطور می تونم با اجرای یه اسکریپت همه جدولهای یه دیتابیس رو خالی کنم؟

البته دیتابیسی که فعلا استفاده می کنم 36 جدول داره و توی هر وب سایت باید از این 36 تا محتویات 34 جدول رو خالی (empty) کنم.

لطفا بگید باید چیکار کنم؟

djsaeedkhan
سه شنبه 05 اردیبهشت 1391, 21:55 عصر
سلام
قبلا همچین چیزی رو دیده بودم
اما الان فقط خواستم بگم اگر همه رو delete کنی auto increment هایت از صفر شروع نمیشم
ولی اگر بتونی یه بکاپ خالی از دیتابیست بگیری
بعد دیتابیساتو حذف کنی و بعد دوباره با همون دستور بسازیشون
اینم یه روشه البته نه شاید نهند آدمی

idocsidocs
سه شنبه 05 اردیبهشت 1391, 22:32 عصر
اما الان فقط خواستم بگم اگر همه رو delete کنی auto increment هایت از صفر شروع نمیشم
ما هم که حواس پرتی داریم انگار !

این دستور توی phpmyadmin هست و وقتی جدول رو خالی می کنیم این دستور نمایش داده می شه !

TRUNCATE TABLE `tb`

MMSHFE
چهارشنبه 06 اردیبهشت 1391, 11:34 صبح
با TRUNCATE شماره گذاری هم از 1 شروع میشه. مثال:


mysql_connect('localhost', 'root', '') or die('Connection error');
mysql_select_db('dbname') or die('Database error');
$tables = array('table1', 'table2', 'table3');
foreach($tables as $table) {
mysql_query("TRUNCATE TABLE `{$table}`;");
}

موفق باشید.

idocsidocs
چهارشنبه 06 اردیبهشت 1391, 11:51 صبح
با TRUNCATE شماره گذاری هم از 1 شروع میشه. مثال:مهندس توی روشی که گفتید، باید حتما اسم جدولها رو توی آرایه وارد کنیم، راهی نیست که اسکریپت به دیتابیس وصل بشه و اسم جدولهای دیتابیس رو بخونه و توی آرایه ذخیره کنه؟ و بعد شروع به خالی کردن جدولها بکنه؟

چون اینطوری ممکنه بعدا چندتا جدول اضافه کنم و یادم بره که اسم این جدولها رو توی آرایه اضافه کنم و وقتی سایت رو تحویل می دم این جدولها خالی نشده باشن.

MMSHFE
چهارشنبه 06 اردیبهشت 1391, 12:20 عصر
بله راهش هست:


mysql_connect('localhost', 'root', '') or die('Connection error');
mysql_select_db('dbname') or die('Database error');
$tables = array();
$result = mysql_query('SHOW TABLES');
while($row = mysql_fetch_row($result)) {
$tables[] = $row[0];
}
mysql_free_result($result);
foreach($tables as $table) {
mysql_query("TRUNCATE TABLE `{$table}`;");
}

موفق باشید.