PHP mySQL简单回音来自SELECT
我试图从SELECT from DB创建一个简单的回音 它总是一片空白 代码如下:PHP mySQL简单回音来自SELECT,php,mysql,Php,Mysql,我试图从SELECT from DB创建一个简单的回音 它总是一片空白 代码如下: <?php $username = "xxxx"; $password = "xxxx"; $hostname = "xxxx"; $conn = mysqli_connect($hostname, $username, $password, "xxxx"); if(! $conn ) { die('Could not connect: ' . mysqli_error()); } $user
<?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);
?>
如果成功了,您就不会得到ID,而是一个“mysqli_result”对象
试着打印($retval)看看你真正得到了什么
如果是mysqli_结果对象,则需要另一个步骤来获取数据
while ($row = $retval->fetch_assoc()) {
echo $row['id'];
}
根据报告:
失败时返回FALSE。为了成功地选择、显示、描述或解释查询,mysqli_query()将返回一个mysqli_结果对象。对于其他成功的查询,mysqli\u query()
将返回TRUE
此外,请注意,运行但返回零结果的查询仍然被视为“成功查询”,因为查询确实在数据库中运行,空结果集是合法响应。这意味着查询仍将返回mysqli\u结果
对象
正如我迄今为止对代码的理解,如果您希望回显返回的结果,您可以使用,因此您的代码将变成:
/* numeric array */
$row = mysqli_fetch_array($retval, MYSQLI_NUM);
你可以这样回应:
或
然后你可以回应为:
此外,您可以使用来循环结果或获取单行实例,例如:
while ($row = $result->fetch_assoc()) {
echo $row['id'];
}
返回表示结果集中提取行的字符串的关联数组,其中数组中的每个键表示结果集中某个列的名称,如果结果集中没有更多行,则返回NULL
如果要检查查询是否找到任何行,可以使用
其工作原理如下:
/* determine number of rows result set */
$row_cnt = mysqli_num_rows($retval);
你知道你是否连接到数据库了吗?您可以尝试更改一个值以查看是否出现错误
如果这不是问题所在,那么这应该会更好:
$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,如果用户和pass是正确的,那么它将从该行获取该特定字符串
因此,如果mysql的值“cakes”是5,那么上面的值将输出“5”。谢谢大家的回答!
我的结局是:
$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);
}
?>
请记住,像这样传递变量将导致SQL注入
/* determine number of rows result set */
$row_cnt = mysqli_num_rows($retval);
$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;
$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);
}
?>