gpt4 book ai didi

php - MySQL 行未找到但确实存在

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

我正在使用 PHP 尝试从 MySQL 数据库的表中选择一行。我已在 phpMyAdmin4 中手动运行查询,它返回了预期结果。但是,当我在 PHP 中运行完全相同的查询时,它什么也没有返回。

$query = "SELECT * FROM characters WHERE username=".$username." and charactername=".$characterName."";
if($result = $mysqli->query($query))
{
while($row = $result->fetch_row())
{
echo $row[0];
}
$result->close();
}
else
echo "No results for username ".$username." for character ".$characterName.".";

当我在浏览器中对此进行测试时,我得到了“没有结果...”的回显。我做错了什么吗?

这不是一个重复的问题,因为我不是问何时使用某些引号和反引号。我正在寻求帮助以了解为什么我的查询不起作用。引用只是碰巧不正确,但即使更正,问题也没有解决。下面是编辑后的代码以及其余部分。由于显而易见的原因,我删除了我的服务器信息。

<?PHP
$username = $_GET['username'];
$characterName = $_GET['characterName'];

$mysqli = new mysqli("REDACTED","REDACTED","REDACTED");

if(mysqli_connect_errno())
{
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}

$query = "SELECT * FROM `characters` WHERE `username`='".$username."' and `charactername`='".$characterName."'";

if($result = $mysqli->query($query))
{
while($row = $result->fetch_row())
{
echo $row[0];
}

$result->close();
}
else
echo "No results for username ".$username." for character ".$characterName.".";

$mysqli->close();
?>

最佳答案

失败:$mysqli = new mysqli("REDACTED","REDACTED","REDACTED");因为您没有选择数据库。

使用 MySQLi API 连接到数据库需要 4 个参数:

如果不需要您的密码,您仍然需要一个(空)参数。

即:$mysqli = new mysqli("host","user", "", "db");

另外,如前所述。

您当前的代码已开放给 SQL injection 。使用mysqli_* with prepared statements ,或PDOprepared statements .

<小时/>

脚注:

original post 中所述。字符串需要在值中加引号。

关于php - MySQL 行未找到但确实存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35635439/

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