2014-10-21 5 views
0

Я создал сценарий .bat, но когда я запустил его, он не обнаружил включенный файл в моем php-скрипте.Командная строка php

.bat

"C:\xampp\php\php.exe" -f "D:/Projects/Web projects/done/sticky/test.php" 

test.php

<?php 

include 'db.php'; 

     try { 
      //stm 
      $STH = $DBH->prepare("INSERT INTO users (username, password, email) values (:user, :pwd, :email)"); 
      //bind 
      $data = array('user' => 'a', 'pwd' =>'b', 'email' => 'c'); 
      //exec 
      $STH->execute($data); 
     } 
     catch(PDOException $e) { 
      file_put_contents('PDOErrors.txt', $e->getMessage(), FILE_APPEND); 
      die("db error"); 
     } 
?> 

db.php содержит свою информацию дб, но скрипт не обнаружит. Обратите внимание, что если я запускаю его в браузере, он работает.

+0

Что каталог вы его выполнения в? Если это не тот же каталог, что и файл db.php, он не найдет его, если ваш оператор include не укажет, в какой каталог он должен быть найден. Попробуйте изменить его на 'include __DIR__. '/db.php'; ' –

+0

' \\\\\\ ////// ' –

ответ

2

Включает в себя PHP относительно текущего рабочего каталога, а не местоположения сценария. Однако при доступе к файлу PHP через веб-сервер CWD обычно является местом сценария.

В вашем случае вам необходимо либо изменить каталог перед запуском сценария или изменить его в вашем сценарии с использованием chdir(__DIR__);

1
<?php 

define('DS', DIRECTORY_SEPARATOR); 
define('ROOT', dirname(__FILE__) . DS); 

require_once(ROOT . 'db.php'); 
+0

Добавить дополнительные определения при необходимости, например' define ('LIB_PATH', ROOT. 'library'. DS); ' –

Смежные вопросы