【问题标题】:My HTML form is not posting to my database, is there something wrong with my php?我的 HTML 表单没有发布到我的数据库,我的 php 有问题吗?
【发布时间】:2019-05-05 13:23:03
【问题描述】:

我正在尝试将我的 HTML 表单发布到我的数据库,但我什么也没得到。目前我并不担心事情的安全性,我只是希望它能够正常工作。我已经在整个网络上寻找解决方案,并且大多数类似的问题都在这里。我可能只是错过了一些愚蠢的东西。

HTML

  <form action="booking.php"  id="booking" name="booking" method="post">
       Let us know what you would like and when and we will get back to you 
       to confirm<br>
         <label for="name">Name:</label>
         <input type="text" id="name" name="name"><br>
         <label for="email">Email:</label>
         <input type="email" name="email" id="email" required>`

PHP

<?php

define('db_database', 'database');
define('db_user_name', 'username');
define('db_password', 'password');
define('db_server_name', 'server');

$dbconnect = mysqli_connect(db_server_name, db_user_name, db_password, 
db_database);

if (!$dbconnect) {
die('Could not connect: ' . mysqli_error());
}

echo 'Connected!';

$db_selected = mysqli_select_db($dbconnect, db_database);


     $name = $_POST['name'];

     $mysqli = "INSERT INTO booking (name) VALUES ($name)"; 

?>

MySQL 返回一个空结果集(即零行)。 (查询耗时 0.0004 秒。)

【问题讨论】:

  • 您实际上仍然需要执行查询,而不仅仅是将其放入变量中。请参阅:mysqli_query()
  • SQL 本身可能容易受到 SQL 注入的攻击 - 你最好使用 prepared statement

标签: php database mysqli


【解决方案1】:
  1. 确保您的姓名输入标签中的姓名属性定义为名称,如:&lt;input type="text" name="name"&gt; 没有这个您将无法访问。检查您是否获得了提交表单的值,例如:echo $_POST["name"]

我建议在 SQL 查询中获取 $name 变量,如下所示:INSERT INTO booking (name) VALUES ('$name')

如果它仍然不起作用,请尝试像这样执行查询:

$result = mysqli_query($dbconnect, $mysqli);

(而不是你的 $db_selected 部分)

希望能帮到你。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-12-19
    • 2018-11-13
    • 2017-03-21
    • 2023-03-20
    • 2016-02-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多