2016-07-07 110 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到cronjobs,你应该使用绝对路径的文件。该脚本可能不会在它自己的目录中执行。

那么试试这个:

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

你也可以添加:

echo "$tt <br>"; 

之前打个电话执行SQL-statment,看看有什么说法acually是。如果您收到一条消息但没有添加到您的数据库中,请复制副本并手动尝试,以查看可能出现的错误。

+0

执行批处理文件时出现警告:警告:fgetcsv()期望参数1在第8行给出的资源是可用的。 –

+0

因此,句柄没有打开。你可以检查权限是否正确,你有正确的路径吗? – DocRattie

+0

如果句柄不能在批处理文件中运行,那么它是如何单独运行的。 –