我正在使用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内部服务器错误的用户列表登录。
当我的第一个“echo”是ID或userID时,它返回ONE值,仅此而已。
当我的第一个“回声”是登录(日期时间),它不显示任何内容,并且代码中也显示下一个“回显”。
有了这个,我得出结论,错误的登录列。
我读过'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
TIA工作!
“我不能接取到PHP错误日志文件。”,然后联系谁可以。调试500错误的唯一方法是读取错误日志。 – Oldskool
@Oskskool感谢您的回复!我的大问题就是:无法访问日志文件以知道问题出在哪里。我做了一些搜索,现在我可以看到日志文件。 '可捕捉致命错误:类DateTime的对象无法转换为D:\ home \ site \ wwwroot \ teste.php中第44行的字符串 –