来自SELECT的PHP mySQL Simple Echo

时间:2017-12-30 02:18:28

标签: php mysql

我正在尝试从DATA中创建一个简单的回声。

它始终是空白的。

以下是代码:

<?php
$username = "xxxx";
$password = "xxxx";
$hostname = "xxxx";

$conn = mysqli_connect($hostname, $username, $password, "xxxx");

if(! $conn ) {
    die('Could not connect: ' . mysqli_error());
}

$user = $_GET['user'];
$pass = $_GET['pass'];

$sql = "SELECT id FROM 'users' WHERE user='$user' AND pass='$pass'";
$retval = mysqli_query($conn, $sql);



echo($retval);


mysqli_close($conn);
?>

如果有人可以帮助并告诉我我做错了什么,我们将不胜感激:)

4 个答案:

答案 0 :(得分:2)

如果有效,你没有得到ID,而是“mysqli_result”对象。

尝试print_r($ retval)来查看你真正得到的东西。

如果它是mysqli_result对象,则需要另一步来获取数据。

while ($row = $retval->fetch_assoc()) {
    echo $row['id'];
}

答案 1 :(得分:2)

根据manual

  

失败时返回FALSE。对于成功的SELECT,SHOW,DESCRIBE或EXPLAIN查询,mysqli_query()将返回一个mysqli_result对象。对于其他成功的查询,mysqli_query()将返回TRUE。

此外,请注意,运行但返回零结果的查询仍被视为&#34;成功查询&#34; ,因为查询确实在数据库中运行,而空结果集是合法的回应。这意味着查询仍将返回mysqli_result个对象。

据我所知,到目前为止,如果您想要 echo 返回结果,您可以使用mysqli_fetch_array(),因此您的代码将变为:

/* numeric array */
$row = mysqli_fetch_array($retval, MYSQLI_NUM);

你可以回应它:

echo $row[0];

/* associative array */
$row = mysqli_fetch_array($retval, MYSQLI_ASSOC);

然后你可以回应

echo $row['id'];

此外,您可以使用mysqli_fetch_assoc()循环结果或获取单行实例,例如:

while ($row = $result->fetch_assoc()) {
    echo $row['id'];
}
  

返回表示结果集中提取的的字符串的关联数组,其中数组中的每个键表示一个结果集列的名称,如果有,则为NULL结果集中不再有行。

如果您想检查您的查询是否找到了任何行,可以使用mysqli_num_rows

其作用如下:

/* determine number of rows result set */
$row_cnt = mysqli_num_rows($retval);

答案 2 :(得分:1)

您知道您是否已连接到数据库?您可以尝试更改值以查看错误是否出现。

如果不是问题,这应该会更好:

$host = 'xxxx';
$user = 'xxxx';
$pass = 'xxxx';
$db = 'xxxx';
$mysqli = new mysqli($host,$user,$pass,$db) or die($mysqli->error);

$sql = "SELECT id FROM 'users' WHERE user='$user' AND pass='$pass'";
$result = $mysqli->query($sql);

while($row = $result->fetch_assoc()) {
   $whateverString = $row['cakes'];
}
echo $whateverString;

现在假设你在mysql行中有一个名为cakes的值等于5,那么如果用户和传递正确,它将从行中获取该特定字符串。

因此,如果mysql值'cakes'为5,则上面的值将输出“5”。

答案 3 :(得分:0)

感谢您的回答,人们! 我最终得到了这个:

    $q=mysqli_query($con,"SELECT id FROM `users` WHERE user='$username' and pass='$password'");

while ($row=mysqli_fetch_object($q)){
 $data[]=$row;
}

if(json_encode($data)== '[]'){
echo 'error';
}else {
echo json_encode($data);
}
?>