2016-07-07 17 views
1

このファイル(home.php)は正しく動作していますが、このファイルをWindowsスケジューラのバッチファイルで実行しています。それは実行されていません。以下はPHPコードがバッチファイルで実行されていません

<?php 

//error_reporting(0); 
$con = mysqli_connect("localhost","root","","test"); 

$handle = @fopen("organisation.csv", "r"); 

while (($data = fgetcsv($handle, 20000, ",")) !== FALSE) 

{ 
$tt="INSERT INTO upload (organization, entity, credit_limit, days) VALUES(
    '".mysqli_real_escape_string($con,$data[0])."', 
    '".mysqli_real_escape_string($con,$data[1])."', 
    '".mysqli_real_escape_string($con,$data[2])."', 
    '".mysqli_real_escape_string($con,$data[3])."' 
    )"; 
    mysqli_query($con,$tt) or (mysqli_error($con)); 

} 
echo "done"; 

?> 

バッチファイルのコードです:

c:\xampp\php\php.exe -f "c:\xampp\htdocs\home.php" 

答えて

0

私は、Windowsのスケジューラがどのように動作するかわからないんだけど、それはUbuntuのでcronジョブに近いだ場合は、ファイルへのABSOLUTパスを使用する必要があります。スクリプトはおそらくそれ自身のディレクトリでは実行されません。

だから、これを試してみてください。

$handle = @fopen("c:\xampp\htdocs\organisation.csv", "r"); 

また、あなたが追加することができます。

echo "$tt <br>"; 

を使用すると、文がacuallyであるかを確認するSQL-なステートメントを実行befor。あなたが文章を取得してもデータベースに何も追加されていない場合は、satemantをコピーして手作業で試してみてください。

+0

バッチファイルの実行中に警告が表示されます。警告:fgetcsv()は、パラメータ1が8行目に指定されたリソースboolenであると想定しています。 –

+0

したがって、ハンドルは開いていません。権限が大丈夫で正しいパスがあるかどうか確認できますか? – DocRattie

+0

ハンドルがバッチファイルで動作していない場合は、別々に実行されています。 –

関連する問題