gpt4 book ai didi

PHP/MySQL where 子句返回空值

转载 作者:行者123 更新时间:2023-11-29 08:20:24 25 4
gpt4 key购买 nike

在下面所示的代码中使用 PHP/MySQL 的Where子句时遇到一个小问题:

<?php
$con=mysqli_connect("host","username","password","database");
//Note that I have replaced my parametres just for this question
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
//Request Session ID
$id = $_SESSION['uid'];
echo "Session ID = ' . $id;
echo "<br>";
//Request Username
echo "Username = " . mysqli_query($con,"SELECT username FROM 'users' WHERE id = 4");

?>

其输出是(在我单独的登录页面登录后):

session ID = 4

用户名=

所以很明显where子句有问题。据我所知,连接参数没有问题。当我在 PHPmyadmin 中运行 MySQL 命令时,我得到了“Admin”的预期结果。我的输入已正确命名。

我不知道是什么原因造成的,而且我在论坛上找不到任何类似的问题。任何帮助,将不胜感激。谢谢。

更新

我已经调整了以下答案来制作此代码:

<?php
// Only run this script if the sendRequest is from my flash application
if ($_POST['sendRequest'] == "parse") {
//conection:
$con=mysqli_connect("mysqlXX.000webhost.com","a4935911_***","***","a4935911_***");
$id = $_SESSION['uid'];
$getuname = mysqli_fetch_assoc(mysqli_query($con, "SELECT username FROM users WHERE id = $id"));
$uname = $getuname ['username'];

// Print 1 var to flash
print "var1=The username of this user is $uname.";

}

?>

这是由我的 Flash 应用程序触发的。如果我不使用 session ID 变量而只使用例如,则效果很好。 4 作为我的 id 值,但我需要为此使用 session ID。有什么想法吗?

最佳答案

您不应该用普通的单引号 (') 将表名引起来;使用反引号代替(或者,如果不使用保留字,则不使用)。所以:

SELECT username FROM `users` WHERE id = 4

SELECT username FROM users WHERE id = 4

此外,mysqli_query返回的不是字段中的结果,而是一个mysqli_result对象。您必须使用 fetch 命令来获取结果,例如

$result = mysqli_query($con,"SELECT username FROM 'users' WHERE id = 4");
$row = mysqli_fetch_assoc($result);
echo 'Username = ' . $row['username'];

关于PHP/MySQL where 子句返回空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19591017/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com