2016-03-30 16 views
0

Diyelim ki benim wordpress web sitemde aynı dizinde (root) saklanan import.php (altta kod) adında bir PHP betiği var. Sorunum, şu betiği yazarak çalıştırmak istiyorum: www.mydomain.com/import.php tabii ki 404 HATA ile wordpress'i başlatıyor.PHP betiğini wordpress ile aynı dizinde çalıştırın, ancak bu olmadan

Bu komut dosyasını bir şekilde wordpress ortamının dışında nasıl çalıştırabilirim/wordpress'ten hariç tutabilirim?

Scriptim veritabanı güncellemesine adanmıştır (gerçek cron aracılığıyla), bu yüzden bunun için wordpress kullanmak istemiyorum.

<?php 
error_reporting(E_ALL); 
ini_set('display_errors', '1'); 


$mysql_host = 'localhost'; 
$mysql_username = ''; 
$mysql_password = ''; 
$mysql_database = ''; 

$db = new PDO('mysql:dbname='.$mysql_database.';host='.$mysql_host,$mysql_username,$mysql_password); 

// works not with the following set to 0. You can comment this line as 1 is default 
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, 1); 

function truncate_db() 
{ 
    global $db; 

    $sql_query_1 = " 
    TRUNCATE TABLE `WIZYTY`; 
    TRUNCATE TABLE `ANIMALS`; 
    TRUNCATE TABLE `DOCTORS`; 
    TRUNCATE TABLE `CUSTOMER` 
    "; 

    try { 
     $stmt = $db->prepare($sql_query_1); 
     $stmt->execute(); 
     echo "Truncate action - OK"; 
    } 
    catch (PDOException $e) 
    { 
     echo $e->getMessage(); 
     die(); 
    } 
} 

function import_db() 
{ 
    global $db; 

    try 
     { 
     $sql_query_2 = implode(array_map(function ($v) { 
      return file_get_contents($v); 
      }, glob(__DIR__ . "/*.sql"))); 

     $qr = $db->exec($sql_query_2); 
     echo "Import action - OK"; 
     } 
     catch (PDOException $e) 
     { 
     echo 'Connection failed: ' . $e->getMessage(); 
    } 
} 

truncate_db(); 
echo '<br />'; 
import_db(); 

$db = null; 
?> 
+2

Oluşturulan yeniden oluşturma kuralları wordpress setine bir istisna eklemeniz gerekir. Bunlar bir '.htaccess 'stil dosyasında wordpress ile saklanır. Buradaki komut dosyasının istisnası, wordpress'in bu talebi ele geçirmesini "engelleyecektir". – arkascha

+0

Neden? Aslında, eğer kök klasörünüz (genellikle wp-config.php'nin yerleştirildiği) ise, web sunucusu WordPress'den önce ele alacaktır. Http://alanadiniz.com/license.txt ile aynı – mitkosoft

cevap

İlgili konular