无法获取 php mysqli while 语句来发布

问题描述 投票:0回答:4

我是 php 新手,我一直在尝试获取一个表单来将值发布到数据库。

  • 我已成功连接到数据库,因为我可以从表中提取值并将其显示在 HTML 中。

  • 我相信 mysqli_query 是正确的,因为我可以用示例替换 $variables,它们可以工作并发布。

  • 但是,我似乎找不到如何插入我尝试过的 $name、'$name' 和 '$_POST[friendname] 的 $name 和 $desc 变量的正确组合。我缺少什么?

<?php include 'includes/connect.php'; $name = $_POST[friendname]; $desc = $_POST[desc]; //WRITE TO DATABASE if(!$_POST) { echo "Form info: " . $name . " " . $desc; echo "<br />Use the form below to add a new person! <br /><br />"; } else { $query = "INSERT INTO Friends (ID, Name, Description) VALUES ('NULL', $name, $desc)"; mysqli_query($sql, $query); echo "<br />You've added " . $name . "<br /><br />"; } $result = mysqli_query($sql,"SELECT * FROM Friends"); while($row = mysqli_fetch_array($result)) { echo "<strong>" . $row['Name'] . "</strong> - " . $row['Description']; echo "<br>"; } ?> <p><strong>Add a new person to the database</strong></p> <!-- FORM --> <form name="addform" action="index.php" method="post"> Name: <input type="text" name="friendname" /><br /> Description: <input type="text" name="desc" /><br /> <input type="submit" name="submit" label="submit" /> </form>
php mysql mysqli
4个回答
1
投票

尽量不要将id放入查询中,我假设该列是自增的。 您还应该如下所示放置变量

$query = "INSERT INTO Friends (Name, Description) 
                   VALUES ('".$name."', '".$desc."')";

注意:如果您可以向我们展示数据库中存储的数据,将会有所帮助


0
投票

尝试更换

$query = "INSERT INTO Friends (ID, Name, Description)
VALUES ('NULL', $name, $desc)";

$query = "INSERT INTO Friends (ID, Name, Description)
VALUES ('NULL', {$name}, {$desc})";

您可以使用PDO

代替将SQL语句写为字符串

0
投票

我必须将

desc
用反引号括起来,这是 MySQL 中“这是一个变量名”的意思,因为
desc
是一个关键字。如果您将列名称更改为
description
,您的生活会更轻松。

PDO 作为大多数 PHP 安装的标准配置,确实使事情变得更加容易。

<?php
$pdo = new PDO("mysql:host=localhost;dbname=mysql", "user", "password"); 

if (isset($_POST))
{
    $name = $_POST['friendname'];
    $desc = $_POST['desc'];
    echo "Form info: " . $name . " " . $desc;

    // WRITE TO DATABASE
    $sql = "INSERT INTO Friends(friendname, `desc`) VALUES (:fn, :d)";
    $query = $pdo->prepare($sql);
    $query->execute(array(':fn'=>$name, ':d'=>$desc));
    echo "<br />You've added " . $name . "<br /><br />";
    die;
}
?>

<p>Use the form below to add a new person!</p>

<p><strong>Add a new person to the database</strong></p>

<form name="addform" action="index.php" method="post">
    Name:  <input type="text" name="friendname" /><br />
    Description:  <input type="text" name="desc" /><br />
    <input type="submit" name="submit" label="submit" />
</form>

这里有一个执行“SELECT *”的合理示例: 如何使用 PDO 获取行


0
投票

https://github.com/yamen110/Solution_get_not_statments.git

这段代码可以解决你的问题,但是你必须让ID自动递增

并且要做到这一点 1-转到数据库 2-去餐桌(“朋友”) 3-单击结构 4-单击“更改 ID” 5-点击A_I

© www.soinside.com 2019 - 2024. All rights reserved.