php - XAMPP、Eclipse、PHP、MySQL : Fatal error: Call to a member function fetch_array() on null

标签 php mysql eclipse cordova phonegap-cli

这里是初学者,我尝试使用 XAMPP 本地主机从 PhoneGap 应用程序向 Web 服务器进行调用以完成学校作业。我有一个来自之前项目之一的有效的 login.php 文件。然而,一旦转移到新项目,Eclipse将不会运行PHP代码,因此,整个项目,将显示如上所示的错误:“Fatal error: Call to a member function fetch_array() on null”。

现在的项目和以前的项目之间的区别在于我放置 PHP 文件的位置。由于我不再拥有 microsoft azure 订阅,因此我已切换到本地主机 XAMPP。因此,也将我的 php 文件位置从 http://example.cloudapp/login.php 更改为到我有 html 文件的同一文件夹,到 htcdocs/project/login.php。 以下是login.php代码:

<前>查询($query); $count = $结果->fetch_array(MYSQLI_NUM); $json_out = "["。 json_encode(array("结果"=>$count[0])) 。 “]”; 回显 $json_out; $conn->close(); } 捕获(异常$e){ $json_out = "[".json_encode(array("结果"=>0))."]"; 回显 $json_out; } ?>

我已确保数据库“bencoolen”是使用名为“profiles”的表创建的,其中包含“用户 ID”和“密码”字段。

enter image description here

我还在 Eclipse 上下载了“PHP 开发工具”,并且我的所有 php 代码语法都突出显示。 Eclipse 还可以在我添加login.php 之前运行javascript 和html 代码。 Eclipse 将我定向到第 12 行,其中出现 fatal error :

$count = $result->fetch_array(MYSQLI_NUM);

这是我不受支持的理论: 我认为他们无法识别我的用户名和密码字段,因为 PHP 文件由于其文件位置而未连接到数据库

最佳答案

我并不是说我的代码是最好的方法,但您可以遵循并获得结果,我也在相同的场景中工作并取得成功。

<?php
    $server = "127.0.0.1";
    $user = "root";
    $pass = "root";
    $db = "bencoolen";
    //open connection to mysql db
    $connection = mysqli_connect($server,$user,$pass,$db) or die("Error " . mysqli_error($connection));

    $userid = $_REQUEST['userid'];
    $password = $_REQUEST['password'];

    //fetch table rows from mysql db

    $sql = "select * from profiles WHERE userid= '$userid' AND password = '$password'";
    $result = mysqli_query($connection, $sql) or die("Error in Selecting " . mysqli_error($connection));

   // echo json_encode(mysqli_num_rows($result));
    if($result){
        if (mysqli_num_rows($result) >= 1 ) {
            $json=array("status"=>1,"message"=>"done");
            echo json_encode($json);
        }else{
            $json=array("status"=>0,"message"=>"email or password not match!");
            echo json_encode($json);
        }
    }else{
        $json=array("status"=>0,"message"=>"error");
        echo json_encode($json);
    }
    mysqli_close($connection); ?>

如果您在同一台计算机上运行,​​则可以使用“localhost”代替127.0.0.1

并且您需要像这样调用您的服务:

http://localhost/login.php?userid=test&password=12345

希望对您有帮助。

关于php - XAMPP、Eclipse、PHP、MySQL : Fatal error: Call to a member function fetch_array() on null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38258447/

相关文章:

php - docker-compose up -d不会创建卷,而docker-compose up会创建卷

php - 在 MySQL 中搜索 - 分隔列

java - 我是 Selenium 新手,但为什么 Maven 会跳过我的测试并告诉我构建成功?

php - 输出中缺少行

Mysql:如何排序列出所有项目?

java - Eclipse 最近的文件

java ubuntu 中的 java.lang.ClassNotFoundException

php - 实现这种图像效果的最佳方式?使用 PHP GD 还是 JS Canvas?

php - 如何使用mysql确保php中的编号顺序唯一?

php - MYSQL在多个类别上计数(*)