我正在制作一个用于练习 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;
}
?>
最佳答案
正如我在评论中提到的,您查询了两次并且没有遍历(成功的)结果。
“循环”是使用 while
或 foreach
。我在这个例子中使用了一个 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();
?>
因此在您的情况下,您的代码将读作:
旁注: Status
和 status
是两种不同的动物,因此请确保字母大小写匹配(在循环中)。
<?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/