2016-04-14 56 views
1

我正在使用PHP版本5.4.45,我的网站和托管在Microsoft Azure上的SQL Server数据库。PHP SQL Server:500具有特定查询的内部服务器错误

此时我只有2个表:

  • 用户(ID [INT PK],FNAME [VCHAR],L-NAME [VCHAR]);
  • user_login(ID [int PK],userID [int],login [datetime]);

我在SSMS上插入数据只是为了测试。

在我的网站上,我运行一个查询,给我一个注册用户列表,并返回所有相关信息(2行)。

当我运行查询以返回引发500内部服务器错误的用户列表登录。

  1. 当我的第一个“echo”是ID或userID时,它返回ONE值,仅此而已。

  2. 当我的第一个“回声”是登录(日期时间),它不显示任何内容,并且代码中也显示下一个“回显”。

有了这个,我得出结论,错误的登录列。

我读过'bog queries'可以做这个错误(我只有30行,每个用户ID 60,我的2个用户),但为了测试,我限制了我的查询只有5条记录。

我在此刻尝试的查询适用于SSMS。

我无法访问PHP错误日志文件。

<?php 

    $userID = 1; 
    $uid = "xxx"; 
    $pwd = "xxx"; 
    $serverName = "xxx"; 
    $connectionInfo = array("Database"=>"Development", "UID"=>$uid, "PWD"=>$pwd); 
    $conn = sqlsrv_connect($serverName, $connectionInfo); 

    if($conn) 
    { 
     // echo "Connection established.\n"; 
    } 
    else 
    { 
     echo "Connection could not be established.\n"; 
     die(print_r(sqlsrv_errors(), true)); 
    } 

    $sql = "SELECT * FROM dbo.userLogin WHERE userID=1 AND ID BETWEEN 5 AND 10 ORDER BY ID ASC "; 
    $stmt = sqlsrv_query($conn, $sql); 

    if($stmt === false) { 
     die(print_r(sqlsrv_errors(), true)); 
    } 

    while($sql = sqlsrv_fetch_array($stmt)) { 
     $id   = $sql["ID"]; 
     $login  = $sql["login"]; 
     $num_row = count($login); 

     for ($i = 0; $i < $num_row; $i++) { 
      echo " 
       <p>$id</p> 
       <p>$login</p> 
       <p>$userID</p> 
      "; 
     } 
    } 
?> 

查询在SSMS

enter image description here

TIA工作!

+1

“我不能接取到PHP错误日志文件。”,然后联系谁可以。调试500错误的唯一方法是读取错误日志。 – Oldskool

+0

@Oskskool感谢您的回复!我的大问题就是:无法访问日志文件以知道问题出在哪里。我做了一些搜索,现在我可以看到日志文件。 '可捕捉致命错误:类DateTime的对象无法转换为D:\ home \ site \ wwwroot \ teste.php中第44行的字符串 –

回答

1

试试这个$sql = "SELECT ID, userID, CONVERT(nvarchar(50),[Login],120) as [Login] FROM dbo.userLogin WHERE userID=1 AND ID BETWEEN 5 AND 10 ORDER BY ID ASC ";

+0

500内部服务器错误...这样的随机错误。谢谢! –

+0

一旦我开始使用PHP + MS SQL,这是安装PDO驱动程序后的第二个问题:) – gofr1

+0

@DenisV gofr1是正确的。另外,如果您想了解更多问题,可以查看此链接:https://af-design.com/2010/03/13/microsoft-sql-server-driver-for-php-returns-datetime-对象/ – muhammedv