سلام خدمت کاربران زردیس
شاید برای خیلی از دوستان سوالی پیش بیاد که چطور میتونیم با استفاده از کد های php یکی از دیتابس هامون که بکاپ گرفتیم رو بازیابی کنیم.
در ادامه با ما همراه باشید تا با نحوه انجام این کار آشنا بشید.
روش اول
این کد HTML برای ایجاد رابط کاربری با فرم آپلود فایل پشتیبان SQL پایگاه داده MySQL و ارسال آن برای بازیابی پایگاه داده است. پس از بازیابی موفقیت آمیز، کاربر را با پاسخی که از PHP با استفاده از این UI برگردانده شده است، تأیید می کنیم.
<?php if (! empty($response)) { ?> <div class="response <?php echo $response["type"]; ?> "> <?php echo nl2br($response["message"]); ?> </div> <?php } ?> <form method="post" action="" enctype="multipart/form-data" id="frm-restore"> <div class="form-row"> <div>Choose Backup File</div> <div> <input type="file" name="backup_file" class="input-file" /> </div> </div> <div> <input type="submit" name="restore" value="Restore" class="btn-action" /> </div> </form>
کد php برای بازیابی پایگاه داده MySQL
این کد PHP حباب فایل آپلود شده را دریافت می کند و نوع فایل را قبل از پردازش بازیابی پایگاه داده تایید می کند. اگر فایل آپلود شده با پسوند .sql نباشد ، پاسخ خطا برای کاربر ارسال می شود.
در غیر این صورت، فایل تجزیه خواهد شد و تمام پرس و جوها را در یک آرایه ذخیره می کند. سپس این کوئری ها در یک حلقه برای بازیابی پایگاه داده اجرا می شوند.
<?php $conn = mysqli_connect("localhost", "root", "test", "phppot_examples"); if (! empty($_FILES)) { // Validating SQL file type by extensions if (! in_array(strtolower(pathinfo($_FILES["backup_file"]["name"], PATHINFO_EXTENSION)), array( "sql" ))) { $response = array( "type" => "error", "message" => "Invalid File Type" ); } else { if (is_uploaded_file($_FILES["backup_file"]["tmp_name"])) { move_uploaded_file($_FILES["backup_file"]["tmp_name"], $_FILES["backup_file"]["name"]); $response = restoreMysqlDB($_FILES["backup_file"]["name"], $conn); } } } function restoreMysqlDB($filePath, $conn) { $sql = ''; $error = ''; if (file_exists($filePath)) { $lines = file($filePath); foreach ($lines as $line) { // Ignoring comments from the SQL script if (substr($line, 0, 2) == '--' || $line == '') { continue; } $sql .= $line; if (substr(trim($line), - 1, 1) == ';') { $result = mysqli_query($conn, $sql); if (! $result) { $error .= mysqli_error($conn) . "\n"; } $sql = ''; } } // end foreach if ($error) { $response = array( "type" => "error", "message" => $error ); } else { $response = array( "type" => "success", "message" => "Database Restore Completed Successfully." ); } } // end if file exists return $response; } ?>
روش دوم
<?php $connection = mysqli_connect('localhost','root','','test'); $filename = 'backup.sql'; $handle = fopen($filename,"r+"); $contents = fread($handle,filesize($filename)); $sql = explode(';',$contents); foreach($sql as $query){ $result = mysqli_query($connection,$query); if($result){ echo '<tr><td><br></td></tr>'; echo '<tr><td>'.$query.' <b>SUCCESS</b></td></tr>'; echo '<tr><td><br></td></tr>'; } } fclose($handle); echo 'Successfully imported'; ?>
اخبار زردیس | جدیدترین اخبار ایران و جهان
تمامی حقوق مطالب برای "اخبار زردیس"محفوظ است و هرگونه کپی برداری بدون ذکر منبع ممنوع می باشد.
طبق ماده 12 فصل سوم قانون جرائم رایانه ای کپی برداری از قالب و محتوا پیگرد قانونی خواهد داشت.