Bonjour à vous,
J'ai un script qui sauvegarde automatiquement ma base de donnée mysql, lorsque j'ouvre ma page d'accueil de gestion de mon site web (le script crée un fichier backup.sql sur mon serveur).
Hors, hier, j'ai travailler une nouvelle page, ajouter des champs booléen (tinyint(1) NOT NULL DEFAULT '0' ) à une table de ma base, et BAM!!! le script s'arrête lorsqu'il rencontre cette table (elle a environ 56 000) enregistrement... j'ai enlever les boolens, et BAM !!! ça refonctionne... j’avoue que je trouve ça étrange... étant donner qu'il y a des champs de même type dans beaucoup d'autre tables....
Voici le script :
Avez-vous une idée ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73 date_default_timezone_set('America/Montreal'); // Database configuration $host = "localhost"; $username = "bd"; $password = "pass"; $database_name = "nombd"; // Get connection object and set the charset $conn = mysqli_connect($host, $username, $password, $database_name); $conn->set_charset("utf8"); // Get All Table Names From the Database $tables = array(); $sql = "SHOW TABLES"; $result = mysqli_query($conn, $sql); while ($row = mysqli_fetch_row($result)) { $tables[] = $row[0]; } $sqlScript = ""; foreach ($tables as $table) { // Prepare SQLscript for creating table structure $query = "SHOW CREATE TABLE $table"; $result = mysqli_query($conn, $query); $row = mysqli_fetch_row($result); $sqlScript .= "\n\n" . $row[1] . ";\n\n"; $query = "SELECT * FROM $table"; $result = mysqli_query($conn, $query); $columnCount = mysqli_num_fields($result); // Prepare SQLscript for dumping data for each table for ($i = 0; $i < $columnCount; $i ++) { while ($row = mysqli_fetch_row($result)) { $sqlScript .= "INSERT INTO $table VALUES("; for ($j = 0; $j < $columnCount; $j ++) { $row[$j] = $row[$j]; if (isset($row[$j])) { $sqlScript .= '"' . $row[$j] . '"'; } else { $sqlScript .= '""'; } if ($j < ($columnCount - 1)) { $sqlScript .= ','; } } $sqlScript .= ");\n"; } } $sqlScript .= "\n"; } if(!empty($sqlScript)) { // Save the SQL script to a backup file $backup_file_name = 'backup/backup_' . date("Y-m-d H i s") . '.sql'; $fileHandler = fopen($backup_file_name, 'w+'); $number_of_lines = fwrite($fileHandler, $sqlScript); fclose($fileHandler); }
Merci beaucoup,
Partager