php - 尝试在 PHP 中回显某个 ID 时出现 SQLi 错误

标签 php mysql

我正在制作一个用于练习 PHP 和 MySQL 的状态更新页面。

我目前正在尝试在页面上回显已保存的状态。

状态保存在名为“Status”的行中,并且在名为“statusID”的行中为它们都赋予特定的 ID。

我遇到的问题是我想使用哪个提取,因为使用 (string)$var 无法将其转换为字符串。 ($var 是一个例子)。

此外,$idNum 变量是供以后使用的,不应该与此有任何关系。

这是代码:(显然第一个变量被审查了,所以没有人尝试连接到数据库,连接在实际代码中工作。) 我相信问题出在 $fetchRes 上。

<?php
$idNum = 1;
$servername = "censored";
$username = "censored";
$password = "censored";
$db_name = "censored";
$conn = mysqli_connect($servername, $username, $password, $db_name);

if ($conn->connect_error)
{
    die("Connection failed: " . $conn->connect_error);
}

$sql = "SELECT Status FROM SavedStatuses WHERE statusID=1;";
$statusQuery = mysqli_query($conn, $sql);
$fetchRes = mysqli_fetch_assoc($statusQuery);

if($conn->query($sql) == TRUE)
{
    echo $fetchRes;
} else {
    echo "Failed to retrieve status, error: " . $conn->error;
}
?>

最佳答案

正如我在评论中提到的,您查询了两次并且没有遍历(成功的)结果。

“循环”是使用 whileforeach。我在这个例子中使用了一个 while 循环。

来自“官方”手册:

例子:

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if ($mysqli->connect_errno) {
    printf("Connect failed: %s\n", $mysqli->connect_error);
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 50,5";

if ($result = $mysqli->query($query)) {

    /* fetch associative array */
    while ($row = $result->fetch_assoc()) {
        printf ("%s (%s)\n", $row["Name"], $row["CountryCode"]);
    }

    /* free result set */
    $result->free();
}

/* close connection */
$mysqli->close();
?>

因此在您的情况下,您的代码将读作:

旁注: Statusstatus 是两种不同的动物,因此请确保字母大小写匹配(在循环中)。

<?php
$mysqli = new mysqli("censored", "censored", "censored", "censored");

/* check connection */
if ($mysqli->connect_errno) {
    printf("Connect failed: %s\n", $mysqli->connect_error);
    exit();
}

$query = "SELECT Status FROM SavedStatuses WHERE statusID=1";

if ($result = $mysqli->query($query)) {

    /* fetch associative array */
    while ($row = $result->fetch_assoc()) {
        echo $row["Status"];
    }

    /* free result set */
    $result->free();
}else{
echo "The query failed: " . mysqli_error($mysqli);

}

/* close connection */
$mysqli->close();
?>

关于php - 尝试在 PHP 中回显某个 ID 时出现 SQLi 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41763755/

相关文章:

php - Symfony2 Doctrine MongoDB 回滚

mysql - MySQL 中 SELECT 查询数据可见性

mysql - 无法在 vagrant box 上使用 chef cookbook 安装 mysql-client

mysql - 如何在 Windows 10 上的 xampp 中运行 mysql 查询 - 我没有 mysql 密码

php - 无法弄清楚一个复杂的 SQL 查询

php - php中的简单注册页面

PHP - 如何通过 Youtube API v3 更改 YouTube 视频的隐私状态?

javascript - 如何将 html 标签 id 转换为 php 字符串

php - 如何将某个ID的表数据转移到另一个表中

mysql - Mongoose处理关系表