0

データベースに接続して挿入/更新を行うphpスクリプトがあります。明らかに、ブラウザを使用してスクリプトを実行すると、正常に実行され、本番環境に移行されません。

挿入/更新を行うために作成したphpスクリプトを実行するバッチスクリプトを使用して、php.exeを呼び出す方法を教えてください。

私は ff: セットアップを持っています

私はffでxamppを使用しています:

webdirectory/cronjobs/cronjob.php -> 挿入と更新を行います webdirectory/cronjobs/runscript.bat -> cronjob.php を実行します

runscript.bat
@echo off
php.exe -f ../webdirectory/cronjobs/cronjob.php

cronjob.php

include_once('../db/dbcon.php');
$test = $db->run();
.... insert/update codes

さらに、Win7 のコマンド ラインを使用してバッチ スクリプトを直接実行しようとすると、drive:>/xampp/php/php.exe -f drive:>xampp/htdocs/webdirectory/cronjobs/cronjob.php を使用します。

ff: error; が表示されます。

Warning: include_once(): Failed opening '../webdirectory/db/dbcon.php' for inclusion (include_path='.; E:\xampp\php\PEAR') in E:\xammp\htdocs\webdirectory\db\dbcon.php on line xx

相対ファイルパスが失敗していると思います。フォローアップの質問ですが、それはスクリプト ファイルを編集してパスを絶対パスに設定する必要があるということですか? ../webdirectory/db/dbcon.phpを使用する代わりに、e:/xampp/htdocs/webdirectory/db/dbcon.phpを使用する必要がありますか? 私には悪いことのように見えます...

誰か助けてくれませんか?

4

1 に答える 1

1

ディレクトリをスクリプトの場所に変更して、スクリプトのディレクトリの外部から実行されたときにすべての相対パスが機能するようにします

cronjob.php

chdir(__DIR__);
include_once('../db/dbcon.php');
于 2012-10-03T13:12:32.797 に答える