Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/242.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 上载Firebird数据库文件时出错_Php_Firebird - Fatal编程技术网

Php 上载Firebird数据库文件时出错

Php 上载Firebird数据库文件时出错,php,firebird,Php,Firebird,我使用共享主机,第一次尝试从Firebird文件读取数据。我有一个界面,允许用户通过以下方式选择其.fdb文件: HTML 更新我想要实现的目标: 我希望允许我的用户指定位于其本地计算机中的.fdb路径,该路径将在我的网站中捕获 用户只需单击一个按钮即可将数据从.fdb文件“传输”(上载)到我的网站 因此,这里我得到了如上所示的错误。介意我问一下,还有什么其他方法可以达到和我相同的目标?我是否应该请求用户以text/XML/excel(csv)格式执行所谓的数据转储/数据导入/数据上传 您正在将

我使用共享主机,第一次尝试从Firebird文件读取数据。我有一个界面,允许用户通过以下方式选择其
.fdb
文件:

HTML

更新我想要实现的目标:

  • 我希望允许我的用户指定位于其本地计算机中的.fdb路径,该路径将在我的网站中捕获
  • 用户只需单击一个按钮即可将数据从.fdb文件“传输”(上载)到我的网站
  • 因此,这里我得到了如上所示的错误。介意我问一下,还有什么其他方法可以达到和我相同的目标?我是否应该请求用户以text/XML/excel(csv)格式执行所谓的数据转储/数据导入/数据上传

  • 您正在将数据库文件从客户端上载到服务器以连接到它?至少可以说,这样做很奇怪。通常,您会将数据库托管在服务器上,并连接到它(可能是在允许客户端指定要使用的数据库之后)

    在这种情况下,出现此错误的原因可能是您的主机上没有安装Firebird服务器,或者它运行在与默认端口3050不同的端口上(如错误中无法完成对主机“localhost”的网络请求所示)。根据我的经验,与Firebird共享主机是很少见的,所以你可能想和你的主机公司核实一下他们是否真的提供Firebird,如果是的话,使用什么端口

    由于以下原因,这也将(可能)无法正常工作:

    • 当客户端使用Windows,服务器使用Linux时,Firebird服务器将无法打开数据库
    • 正确配置的服务器上的Firebird服务器进程不应能够从Web服务器进程访问文件

    请注意主持人的名言

    Hi Mark,感谢您宝贵的时间和反馈。我已经更新了我的问题,请不要介意再次建议我。@4LeaveCover我的答案保持不变:您似乎没有运行Firebird服务器(或在不同的端口上),即使您解决了这个问题,您也可能会遇到不同的问题。唯一真正的方法是备份数据库并将其恢复到服务器上,或者使用excelsheets、csv等上传数据。我想要的是来自用户的数据,但用户可能使用MySQL、MSSQL、Firebird、MS Access等。因此,与其要求他们上传DB文件,我应该说服他们执行数据提取并上传/转储到我的系统?@4LeaveCover鉴于正确上传SQL Server或MySQL数据库会更加困难,我认为这样会更好,是的。我认为这只是PHP为您逃避错误消息,因为给定了
    $host
    变量的填充方式,它将只包含文件的路径。
    <label class="title">Import by FBD File</label>
    <input type="file" class="input-file input-importFDB" name="filefdb" id="filefdb" >
    <input class='btn btn-primary' type='submit' id='btnImportFDB' name='btnImportFDB' value='Import'>
    
    if (isset($_POST['btnImportFDB'])){
        $host = $_FILES["filefdb"]["tmp_name"];
        $username = 'SYSDBA';
        $password = 'masterkey';
    
        $dbh = ibase_connect($host, $username, $password);
        $stmt = 'SELECT * FROM customer;';
        $sth = ibase_query($dbh, $stmt);
        while ($row = ibase_fetch_object($sth)) {
            echo $row->CUST_NO.'<br/>';
        }
        ibase_free_result($sth);
        ibase_close($dbh);
    }
    
    [21-Sep-2017 19:36:06 Asia/Singapore] PHP Warning:  ibase_connect(): Unable to complete network request to host &quot;localhost&quot;. Failed to establish a connection.  in /home/mywebproject/demo.mywebsite.com.my/validate/myfile.php on line 56
    [21-Sep-2017 19:36:06 Asia/Singapore] PHP Warning:  ibase_query(): invalid database handle (no active connection)  in /home/mywebproject/demo.mywebsite.com.my/validate/myfile.php on line 58
    [21-Sep-2017 19:36:06 Asia/Singapore] PHP Warning:  ibase_fetch_object() expects parameter 1 to be resource, boolean given in /home/mywebproject/demo.mywebsite.com.my/validate/myfile.php on line 59
    [21-Sep-2017 19:36:06 Asia/Singapore] PHP Warning:  ibase_free_result() expects parameter 1 to be resource, boolean given in /home/mywebproject/demo.mywebsite.com.my/validate/myfile.php on line 62
    [21-Sep-2017 19:36:06 Asia/Singapore] PHP Warning:  ibase_close() expects parameter 1 to be resource, boolean given in /home/mywebproject/demo.mywebsite.com.my/validate/myfile.php on line 63
    
    Error:    Unable to complete network request to host &quot;localhost&quot;