为什么包含在我的PHP文件中不包括我的变量?

时间:2016-09-20 21:24:19

标签: php android php-include

我的Android应用程序中有3个php文件 - dbConnect.php,它与数据库volleyLogin.php连接,用户登录UserDetails.phpUserDetails.php获取有关登录用户。

在我的浏览器中运行文件时,它们可以正常工作,但是从我的Android应用username运行时,它们无法正常工作。它不断返回' 0结果'并且我被告知变量include未定义,即使我使用dbConnect.php语句,该语句应该将一个PHP文件的内容插入到另一个PHP文件中。

我的<?php define ('HOST', 'localhost'); define ('USER', 'root'); define ('PASS', 'password'); define ('DB', 'dbname'); $con = mysqli_connect("localhost", "root", "password", "dbname") or die('Unable to Connect'); ?> 看起来像这样:

volleyLogin.php

我的<?php if($_SERVER['REQUEST_METHOD']=='POST'){ $username = $_POST['username']; include('dbConnect.php'); $sql = "SELECT * FROM user WHERE username = '$username'"; $result = mysqli_query($con,$sql); $check = mysqli_fetch_array($result); if(isset($check)){ echo 'success'; } else { echo 'Could not log in'; } } ?> 是这样的:

UserDetails.php

<?php include('dbConnect.php'); include('volleyLogin.php'); $resultSet = $con->query("SELECT category.cat_name FROM category INNER JOIN user ON category.user_id = user.user_id WHERE user.username = '$username' ") or die($con->error); if ($resultSet->num_rows > 0) { while($rows = $resultSet->fetch_assoc()) { $catname = $rows['cat_name']; echo "<p> Name: $catname </p>"; }} else { echo "0 results"; } //echo "userdetails.php works"; $con->close(); ?> 看起来像这样:

$resultSet = $con->query("SELECT category.cat_name FROM category INNER JOIN user ON category.user_id =
user.user_id WHERE user.username = '$username' ")

问题在于:

client-combined 3.0.0 beta 3

1 个答案:

答案 0 :(得分:1)

你的逻辑是错误的:mysqli_*()函数基本上要么返回一个对象/结果句柄,要么返回一个布尔值true(成功)/ false(失败)。他们总是返回一些东西,所以:

$check = mysqli_fetch_array($result);
if(isset($check)){

错了。始终$check将被设置。您需要显式检查boolean false以检测失败:

if ($check === false) { 
   die(mysqli_error($con));
}

请注意,在您的示例代码中,您没有定义$username,因此您的查询正在执行WHERE user.username = '',并且可能与0行匹配