这里是初学者,我尝试使用 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”和“密码”字段。
我还在 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。
并且您需要像这样调用您的服务:
希望对您有帮助。
关于php - XAMPP、Eclipse、PHP、MySQL : Fatal error: Call to a member function fetch_array() on null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38258447/