PHP 脚本适用于笔记本电脑,但不适用于服务器

Posted

技术标签:

【中文标题】PHP 脚本适用于笔记本电脑,但不适用于服务器【英文标题】:PHP Script works on laptop but not server 【发布时间】:2009-10-30 10:19:23 【问题描述】:

我向 php 脚本发出 AJAX GET 请求,以在每个键入的字符上将文本字段中的值与数据库中的值进行比较 - 这在我的笔记本电脑 (Windows) 上运行流畅且美观。

我将脚本传输到运行 windows server 2003 的计算机上,它尝试发出 GET 请求,但返回“500 内部服务器错误”?!

发生了什么事? PHP 脚本如下:

include('includes/db-connect.php');
$connectionInfo = array( 'Database' => 'TYn_Motor');
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if($conn)
    $tsql = "SELECT * FROM Monitor_User_Session WHERE Session_ID = '".$_GET['session_id']."'";
    $stmt = sqlsrv_query($conn, $tsql);
    if($stmt !== null)  
        if(sqlsrv_has_rows($stmt) === false)
            echo '0';           
        else
            echo '1';
        
    else
        echo '1';
        //die( print_r( sqlsrv_errors(), true));
    
else
       echo '1';
     //echo 'Database Connection could not be Established';  

sqlsrv_close($conn);

任何人都可以看到可能导致问题的原因吗?

包含只有一行 - 变量 $serverName 已设置。我在笔记本电脑上运行 PHP 5.3.0,服务器运行 PHP 5.2.9。

【问题讨论】:

您在笔记本电脑上使用了哪些服务器软件(如 Apache),您在服务器上使用了哪些软件? 我在笔记本电脑上使用 Apache,服务器也是如此。 这不是数据库连接问题,因为我已经很好地连接到数据库了。 【参考方案1】:

如果生产服务器将 display_errors 设置为 off,则可能会抛出常规 PHP 错误(例如缺少扩展名),但没有显示任何内容。尝试将ini_set('display_errors', true) 放在脚本的开头。

【讨论】:

谢谢。应该先这样做。出于一个奇怪的原因,我得到 sqlsrv_has_rows 是一个未定义的函数,即使安装了 sql server 驱动程序并且其他 sql server 调用工作 - 但这是 *** 的另一个问题,如果我无法弄清楚! :)

以上是关于PHP 脚本适用于笔记本电脑,但不适用于服务器的主要内容,如果未能解决你的问题,请参考以下文章

Google Charts 散点图适用于 Chrome Macbook,但不适用于 Chrome iPhone

Web 服务 SOAP 请求适用于 SOAPUI,但不适用于 PHP

PHP 图片上传适用于本地主机,但不适用于 GoDaddy 服务器

wordpress 插件适用于本地主机,但不适用于远程服务器

Jquery $.Post 适用于 Firefox 但不适用于 Chrome

PHP header('Content-Type : image/jpeg') 适用于本地主机但不适用于真实服务器