从HTML表单向MySQL数据库添加数据

Elf*_*ark 5 html php mysql forms

我只有一个基本的Web表单,用于将数据放入mysql数据库,我创建了代码来报告我是否正确地连接到我的数据库,并且它完成了我测试它的表单,它似乎做了我所期望的但是当我转到我的数据库时,实际上没有输入任何数据?我已经在本地和服务器上尝试过这两种方法.这是我的两个.php表单,你看我在我的本地机器上用于在MAMP中测试,只是因为我做错了什么:

virtualWalkLog.php

<form action="hazardsform.php" method="POST"  />
  <p>ROUTE: <input type="text" name="ROUTE" /></p>
  <p>ADDRESS: <input type="text" name="ADDRESS" /></p>
  <p>LATITUDE: <input type="text" name="LATITUDE" /></p>
  <p>LONGITUDE: <input type="text" name="LONGITUDE" /></p>
  <p>HAZARD: <input type="text" name="HAZARD" /></p>
  <p>RISK: <input type="text" name="RISK" /></p>
  <input type="submit" value="Submit" />
</form>
Run Code Online (Sandbox Code Playgroud)

hazardsform.php

<?php

define('DB_NAME', 'virtualWalkLog');
define('DB_USER', 'root');
define('DB_PASSWORD', 'root');
define('DB_HOST', 'localhost');

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

if (!$link) {
     die('Could not connect: ' . mysql_error());
     }

     $db_selected = mysql_select_db(DB_NAME, $link);

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

     $value = $_POST['ROUTE'];
     $value = $_POST['ADDRESS'];
     $value = $_POST['LATITUDE'];
     $value = $_POST['LONGITUTE'];
     $value = $_POST['HAZARD'];
     $value = $_POST['RISK'];

     $sql = "INSERT INTO rmbhazards (ROUTE, ADDRESS, LATITUDE, LONGITUDE, HAZARD, RISK) VALUES ('$value', '$value2', 
     '$value3', '$value4', '$value5', '$value6')";

     mysql_close();
Run Code Online (Sandbox Code Playgroud)

提前谢谢了

Fab*_*bio 6

你不是在冒犯你query,这就是没有插入数据的原因.尝试放置

$sql = "INSERT INTO rmbhazards (ROUTE, ADDRESS, LATITUDE, LONGITUDE, HAZARD, RISK) VALUES ('$value', '$value2', '$value3', '$value4', '$value5', '$value6')";
Run Code Online (Sandbox Code Playgroud)

这个

$result = mysql_query($sql);
Run Code Online (Sandbox Code Playgroud)

所有值都在一个变量中$value,因此您最终会在表中得到所有相同的结果,因此请更改为适合您的查询

 $value = $_POST['ROUTE'];
 $value2 = $_POST['ADDRESS'];
 $value3 = $_POST['LATITUDE'];
 $value4 = $_POST['LONGITUTE'];
 $value5 = $_POST['HAZARD'];
 $value6 = $_POST['RISK'];
Run Code Online (Sandbox Code Playgroud)

我也希望你停止使用 mysql_api,因为他们被取消了,请切换到PDOmysqli

此外,你准备好了mysql injection.这里有一个很好的教程可以解释你的一切 - > 如何在PHP中阻止SQL注入?


alw*_*arn 6

通过你的脚本会很快,你需要调用mysql_query($sql)

$sql = "INSERT INTO rmbhazards (ROUTE, ADDRESS, LATITUDE, LONGITUDE, HAZARD, RISK) VALUES ('$value', '$value2', '$value3', '$value4', '$value5', '$value6')";

mysql_sql 查询将实际执行查询.

$value应该是独一无二的

 $value = $_POST['ROUTE'];
 $value2 = $_POST['ADDRESS'];
 $value3 = $_POST['LATITUDE'];

 -----
Run Code Online (Sandbox Code Playgroud)

建议 因为你刚开始..我建议你尝试mysql_*只是概念,但使用mysqli_*PDO..你知道关于SQL注入

以下是一些可以帮助您的教程

http://php.net/manual/en/security.database.sql-injection.php

http://php.net/manual/en/book.pdo.php

http://php.net/manual/en/book.mysqli.php