命令提示符php

时间:2014-10-21 07:00:58

标签: php batch-file

我创建了一个.bat脚本,但是当我运行它时,它没有在我的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包含我的数据库信息,但脚本没有检测到它。请注意,如果我在浏览器中正常运行它,它确实有效。

2 个答案:

答案 0 :(得分:2)

PHP中的包含与当前工作目录相关,而不是脚本的位置。但是,当通过Web服务器访问PHP文件时,CWD通常是脚本的位置。

在您的情况下,您需要在运行脚本之前更改目录,或使用chdir(__DIR__);

在脚本中更改目录

答案 1 :(得分:1)

<?php

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

require_once(ROOT . 'db.php');