【问题标题】:my HTML Form Using PHP and MySQL is not working我使用 PHP 和 MySQL 的 HTML 表单不起作用
【发布时间】:2017-02-25 06:31:42
【问题描述】:

我正在尝试创建一个简单的 html 表单,通过 MySQL 保存信息,但是我在连接数据库时遇到了一些问题。我认为 $db_selected = mysql_select_db(DB_NAME, $link);是给我的问题。仅供参考 DB_NAME 是我要使用的数据库表。

我的 HTML

<form action="demo.php" method="post">
          <div class="form-group">
            <label for="firstname">First Name:</label>
            <input type="text" class="form-control" id="firstname" name="first_name">
          </div>
          <div class="form-group">
            <label for="lastname">Last Name:</label>
            <input type="text" class="form-control" id="lastname" name="last_name">
          </div>
          <div class="form-group">
            <label for="dob">Date of birth:</label>
            <input type="password" class="form-control" id="dob" name="date_of_birth">
          </div>
          <div class="form-group">
            <label for="pob">Place of birth:</label>
            <input type="text" class="form-control" id="pob" name="place_of_birth">
          </div>
          <div class="form-group">
            <label for="government">Your Local government:</label>
            <input type="text" class="form-control" id="government" name="government">
          </div>
          <div class="form-group">
            <label for="qualifications">Qualifications:</label>
            <textarea class="form-control" rows="5" id="qualifications" name="qualifications"></textarea>
          </div>
          <div class="form-group">
            <label for="skills">Skills:</label>
            <textarea class="form-control" rows="5" id="skills" name="skills"></textarea>
          </div>
            <button type="submit" class="btn btn-default">Submit</button>
        </form>

我的 PHP

<?php

define('DB_NAME', 'forms1');
define('DB_USER', 'c88888');
define('DB_PASSWORD', '*******');
define('DB_HOST', 's********.com');

$link = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD);


$db_selected = mysqli_select_db(DB_NAME, $link);

if (!$db_selected) {
    die('Can\'t use ' . DB_NAME . ': ' . mysqli_error());
}

$value = $_POST['first_name'];
$value2 = $_POST['last_name'];
$value3 = $_POST['date_of_birth'];
$value4 = $_POST['place_of_birth'];
$value5 = $_POST['government'];
$value6 = $_POST['qualifications'];
$value7 = $_POST['skills'];

$sql = "INSERT INTO demo (first_name, last_name, date_of_birth, place_of_birth, government, qualifications, skills) VALUES ('$value', '$value2', '$value3', '$value4', '$value5', '$value6', '$value7')";

if (!mysqli_query($sql)) {
    die('Error: ' . mysqli_error());
}

mysqli_close();
?>

【问题讨论】:

  • 你应该到处使用mysqli,而不是mysql
  • first_name != 他们必须匹配的名字
  • @user2182349 我改了代码还是不行
  • @nogad 谢谢,但它仍然不能解决问题
  • 在伤害自己之前停止观看那些 YouTube 教程。他们中的许多人是由几乎不知道自己在做什么的人制作的,盲人在引导盲人。如果您需要更好的建议,PHP the Right Way 是一个不错的起点。

标签: php html mysql


【解决方案1】:

只需将 db_selected 的代码更改为:

$db_selected = mysqli_select_db($link, DB_NAME);

并确保在使用准备好的语句或mysqli_real_escape_string() 将值输入数据库之前对其进行转义,最好将值用('{$value1}', '{$value2'}) 之类的括号写入

【讨论】:

    【解决方案2】:

    尝试将 DB_HOST 赋予“localhost”,因为几乎每个服务器都将其数据库存储在 localhost 本身中。尝试使用以下代码连接到您的数据库,并确保提供正确的数据库名称。

    <?php
    header("Access-Control-Allow-Origin: *");
    
    define('DB_NAME', 'name');
    define('DB_USER', 'user');
    define('DB_PASSWORD', '****');
    define('DB_HOST', 'localhost');
    
    $dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
    
    if(!$dbc){
       die('could not connect: ' .mysql_error());
    }
    
    ?>
    

    【讨论】:

      【解决方案3】:

      将 SQL 查询编写为字符串时,使用反引号 (`) 分隔数据库字段。

      您在单引号内使用 '$value',这意味着 PHP 将其理解为文字 $value 值,而不是变量。

      您应该将查询更改为:

      $sql = "INSERT INTO `demo` (`first_name`, `last_name`, `date_of_birth`, `place_of_birth`, `government`, `qualifications`, `skills`)
              VALUES ('" . $value . "', '" . $value2 . "', '" . $value3 . "', '" . $value4 . "', '" . $value5 . "' , '" . $value6 . "', '" . $value7 . "')"; 
      

      【讨论】:

      • 在更改查询回显变量以检查值以确保您的问题不是来自表单方面
      猜你喜欢
      • 2014-02-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-12
      • 2013-09-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多