gpt4 book ai didi

php - 如何使用 php 从数据库中自行获取值?

转载 作者:太空宇宙 更新时间:2023-11-03 10:45:06 27 4
gpt4 key购买 nike

我正在尝试访问 firstname通过它自己。我将以下代码放在一起:

<?php
$sql = "SELECT firstname, lastname FROM guests WHERE option = $option";
$result = mysqli_query($conn, $sql);

if (mysqli_num_rows($result) > 0) {
// output data of each row
while($row = mysqli_fetch_assoc($result)) {
echo "You Are " . $row["firstname"]. " " . $row["lastname"]. "<br>";
?>

它给了我 You are Bob Testing.我需要将它们转换为自变量,以便我可以在任何地方使用它们。喜欢$row["firstname"] = $firstname;这样我就可以echo $firstname;但是如果我使用 $row["firstname"] = $firstname; 它将不起作用

我认为问题在于我如何形成结果 $result = mysqli_query($conn, $sql);我可以在这里说点别的吗,这样我就可以说 $row["firstname"] = $firstname;并像echo $firstname;一样使用?谢谢。

最佳答案

首先,如果这是您的实际代码,那么它缺少几个右大括号。

if (mysqli_num_rows($result) > 0) {
// output data of each row
while($row = mysqli_fetch_assoc($result)) {
echo "You Are " . $row["firstname"]. " " . $row["lastname"]. "<br>";
} // this one was missing

} // as was this one

现在,将变量“分配给”行,而不是相反。

if (mysqli_num_rows($result) > 0) {
// output data of each row
while($row = mysqli_fetch_assoc($result)) {

$first = $row["firstname"];
$last = $row["lastname"];
}
echo "You are " . $first . " " . $last . "<br>";
}

但是上面只会回显一行,因此您需要将回显放在 while 循环“内部”以回显表中的所有行:

if (mysqli_num_rows($result) > 0) {
// output data of each row
while($row = mysqli_fetch_assoc($result)) {

$first = $row["firstname"];
$last = $row["lastname"];

echo "You are " . $first . " " . $last . "<br>";
}

}

虽然WHERE option = $option";

如果$option是一个字符串,则需要用引号引起来:

WHERE option = '$option'";

否则,MySQL 会将其视为语法错误。检查您的查询是否有错误:

也容易出现SQL注入(inject),所以最好使用prepared statement。

鉴于您可能是 MySQL 的新手,最好了解如何保护自己免受 SQL 注入(inject)攻击。在 Stack 上有一篇关于它的好文章:

关于php - 如何使用 php 从数据库中自行获取值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33028725/

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