הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   יצירת גיבוי? [PHP] (https://hosts.co.il/forums/showthread.php?t=28955)

-roee- 16-08-06 20:05

יצירת גיבוי? [PHP]
 
בכל מערכת מכובדת ישנה אפשרות ליצירת גיבוי לMYSQL (מסד הנתונים שלה)

רציתי לדעת איך בונים מן דבר כזה שניגש לכל הטבלאות וזה ואז מגבה אותם לתוך קובץ מסויים(נגיד X.SQL) ונותן הורדה של הקובץ.

משהו בסגנון של PHPNUKE וכאלה

RS324 16-08-06 20:44

mysql_query("SHOW TABLES")

ואז לולאה ואז שמירה לתוך קובץ

amirs_5 17-08-06 02:19

ציטוט:

נכתב במקור על ידי RS324
mysql_query("SHOW TABLES")

ואז לולאה ואז שמירה לתוך קובץ

לא נכון , איך הוא יגבה גם הודעות?!
עם mysql_query אי אפשר להוציא דברים כמו ALTER ב mysql.

RS324 17-08-06 02:32

מה לא נכון
אתה מריץ שאילתה
SHOW TABLES
ואז עם לולאה של WHILE אתה מושך את השמות של הטבלאות ואז את הנתונים שמתוכם..

Elad-A 17-08-06 08:02

ציטוט:

נכתב במקור על ידי RS324
מה לא נכון
אתה מריץ שאילתה
SHOW TABLES
ואז עם לולאה של WHILE אתה מושך את השמות של הטבלאות ואז את הנתונים שמתוכם..

אני ניסיתי להשתמש בזה אך לא הצלחתי..

עריכה:

עשיתי משהו שמציג את הטבלאות כך:

PHP קוד:

   mysql_connect("localhost"user,pass);
   
mysql_select_db("db");
   
$query  "SHOW TABLES";
   
$result mysql_query($query);
   
$nr mysql_num_rows($result);
   if ( 
$nr )
    {
    
$pointer++;
    print 
"<table columns=\"2\">";
    while ( 
$row mysql_fetch_array($result) )
        {
        
$resultc mysql_query("SELECT COUNT(*) FROM $row[0]");
        
$cnt mysql_fetch_array($resultc);
        print 
"<tr>";
        print 
"<td>" $row[0] . "</td><td>" .  $cnt[0] . "</td>";
        print 
"</tr>";
        }
    print 
"</table>";
    } 

השאלה איך אני מוציא אחרי זה את כל מה ששמור בתוך הטבלאות?

עריכה 2:

חח הצלחתי להוציא גם את כל מה ששמור בטבלה.. עכשיו נשאר רק לשמור לקובץ את מה שיש שם.. יש רעיונות?

Unknown 17-08-06 10:37

אתה צריך ליצור לבד את השורות של ה
קוד:

insert into...
create table..

פשוט תחשוב מתי ואיך אתה מבדיל בין הנתונים
לאחר מכן אתה שומר את כל המידע במשתנה אחד
ובעזרת ה
HEADERS
שולח שמירת קובץ

Crayon 17-08-06 10:45

הינה דוגמא:

PHP קוד:

<?
include("config.php");
header('Content-Type: application/octetstream');
header('Pragma: no-cache');
header('Content-Disposition: filename="backup.sql"');
header('Expires: 0');

$data .= "#מאת: backup:\r\n";
$data .= "#טבלה: table:\r\n";
$result mysql_query("SELECT * FROM table");
while (
$a mysql_fetch_array($result)) {
        foreach (
$a as $key => $value) {
                
$a[$key] = addslashes($a[$key]);
        }
        
$data .= "INSERT INTO table VALUES ('$a[id]', '$a[x1]', '$a[x2]', '$a[x3]'); \r\n#סוף שאילתה.\r\n";
}
echo 
$data;
?>



כל הזמנים הם GMT +2. הזמן כעת הוא 14:19.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ