命令提示符php


Command prompt php

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

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

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

<?php
define('DS', DIRECTORY_SEPARATOR);
define('ROOT', dirname(__FILE__) . DS);
require_once(ROOT . 'db.php');