Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我的PHP文件在else条件下不执行代码_Php - Fatal编程技术网

我的PHP文件在else条件下不执行代码

我的PHP文件在else条件下不执行代码,php,Php,我有以下PHP代码为我的移动应用程序提供服务,将一些数据插入数据库,但是当它进入else条件时,它无法将邮件发送给我自己。我很确定我的邮件函数可以发送,因为我已经将代码移动到另一个PHP文件进行测试,所以为什么它在这里不起作用?因此,我尝试是否可以创建一个txt文件,但执行后也不会出现任何文件 $result1 = mysql_query("SELECT COUNT(*) FROM Log") or die('Error! ' . mysql_error()); $query = "SELECT

我有以下PHP代码为我的移动应用程序提供服务,将一些数据插入数据库,但是当它进入else条件时,它无法将邮件发送给我自己。我很确定我的邮件函数可以发送,因为我已经将代码移动到另一个PHP文件进行测试,所以为什么它在这里不起作用?因此,我尝试是否可以创建一个txt文件,但执行后也不会出现任何文件

$result1 = mysql_query("SELECT COUNT(*) FROM Log") or die('Error! ' . mysql_error());
$query = "SELECT `Type` FROM `Log` WHERE `TechID` = '".$TechID."' ORDER BY LogTime DESC LIMIT 1";
$result2 = mysql_query($query) or die('Error! ' . mysql_error());

while($row1 = mysql_fetch_array($result1))
{
      $count = $row1['COUNT(*)'];
      if(mysql_num_rows($result2) > 0)
          {
         while($row2 = mysql_fetch_array($result2))
             {
            if($row2['Type']!="Checkin")
                {
               $count = $count+1;
               $timezone = "Asia/Hong_Kong";
               if(function_exists('date_default_timezone_set')) 
                  date_default_timezone_set($timezone);
               $Time = date('Y/m/d H:i');
               mysql_query("INSERT INTO Log (LogID, TechID, ClientID, SiteID, LogTime, Type)
                    VALUES(".$count.", '".$TechID."', ".$ClientID.", ".$SiteID.", '".$Time."', 'Checkin')");
            }
                else
                {
                 mail('me@gmail.com', 'test mail', 'Just a test');
                 $content = "First folder"; 
                 $fp = fopen("C:/xampp/htdocs/Me/checking.txt","wb"); 
                 fwrite($fp,$content); 
                 fclose($fp);
            }
        }
     }
}
执行
$row2['Type']的var_dump()

        while($row2 = mysql_fetch_array($result2)){
           var_dump($row2['Type']);
           if($row2['Type']!="Checkin"){

查看类型键真正包含的内容,即使是空白也会使测试失败(或者您可以尝试使用
if(trim($row2['Type'])!=“Checkin”){

这需要进行基本调试。
else
块是否实际输入过?是否确实要为每一行输入一封电子邮件,而不是类型为“Checkin”?验证数据库如果没有类型为“Checkin”的记录,则可以更新一条记录并将其类型设置为“Checkin”,以查看是否到达else块实际上,它只会e一行,因为我在查询中使用了Limit 1,是的,我很确定else块正在执行,因为我在数据库中的最后一条记录是checkin,然后我尝试在我的移动应用程序中选择checkin选项,没有更多的记录添加到数据库中。实际上,我还有另一部分代码是checkout来服务于签出选项,并且它运行正确,所以我很确定insert函数没有问题,这就是为什么我不知道else中的脚本为什么根本不执行
我很确定else块正在执行
,所以问题可能是mail()函数配置不正确,以及frwite()的权限?启用所有错误日志并查看发生的情况我尝试了你的方法,但仍然无法创建文件,邮件也没有发送到邮件服务器。唯一的原因应该是它没有进入else节点,但我不知道为什么