【问题标题】:Add data to MYSQL Using HTML FORM and PHP Using method POST使用 HTML FORM 和 PHP 向 MYSQL 添加数据 使用 POST 方法
【发布时间】:2019-03-04 11:56:38
【问题描述】:

我对 PHP 不太了解,我还在学习那种语言,所以我制作了一个表单,它可以使用 PHP 和方法 POST 将数据添加到 mysql。但是当我点击提交时,数据库中没有发生任何事情,没有添加任何数据。 这是config.php

$SETTINGS["hostname"]='localhost';
$SETTINGS["mysql_user"]='username';
$SETTINGS["mysql_pass"]='passw';
$SETTINGS["mysql_database"]='database';
$SETTINGS["data_table"]='defaulttable'; // this is the default database name that we used


/* Connect to MySQL */

if (!isset($install) or $install != '1') {
    $connection = mysql_connect($SETTINGS["hostname"], $SETTINGS["mysql_user"], $SETTINGS["mysql_pass"]) or die ('Unable to connect to MySQL server.<br ><br >Please make sure your MySQL login details are correct.');
    $db = mysql_select_db($SETTINGS["mysql_database"], $connection) or die ('request "Unable to select database."');
};
?>

这是我的 HTML 表单

 <form action="insert.php" method="post">
      <li>Place Name: <input type="text" name="plname" /></li>
      <li>City: <input type="text" name="plcity" /></li>
      <li>Address: <input type="text" name="pladdress" /></li>
      <li>Terminal QTY: <input type="number" name="plqty" /></li>
      <li><input type="submit" name="save" value="Add Place" /></li>

那么 insert.php 呢

    <?php
include ("config.php");
$current_user = wp_get_current_user(); 
$UserID = $current_user->user_login ;
// Check connection
if (!$connection) {
      die("Connection failed: " . mysqli_connect_error());
}
echo "Connected successfully";

//$sql="INSERT INTO wp_telemetry_place (plUserID, plName, plCity, plAddress, plTerminalQ) VALUES ('".$UserID."','".$_POST['plname']."','".$_POST['plcity']."','".$_POST['pladdress']."','".$_POST['plqty']."')";

$sql = "INSERT INTO wp_telemetry_place (plUserID, plName, plCity, plAddress, plTerminalQ) VALUES ('{$UserID}','{$_POST['plname']}','{$_POST['plcity']}','{$_POST['pladdress']}','{$_POST['plqty']}')";

if (mysqli_query($connection, $sql)) {
      echo "New record created successfully";
} else {
      echo "Error: " . $sql . "<br>" . mysqli_error($connection);
}
mysqli_close($connection);

?>

当我单击按钮添加数据时,它不起作用。没有错误,没有数据更新或添加到 mysql 数据库中。密码,主机,用户名,表名等怎么样...我检查了两次:(我会感谢你们身边的任何帮助,在此先感谢,对不起我的英语不好

【问题讨论】:

  • $_POST 中的参数需要被引用。 $_POST['varname']
  • 谢谢你,罗杰,我会改变它,但这无济于事 :( 注射呢?我知道我做得不好,但这不能解决我的问题。
  • 是的。不想去那里。自从你的初学者。这不是专业的做法。您应该查找 MVC 并选择一个框架。我没有检查您的代码以查看问题所在。在我的手机上读到这个:-/因此我的评论????。

标签: php html mysql


【解决方案1】:

您的 SQL 查询格式不正确。试试这个:

$sql = "INSERT INTO wp_telemetry_place (plUserID, plName, plCity, plAddress, plTerminalQ) VALUES ('{$UserID}','{$_POST['plname']}','{$_POST['plcity']}','{$_POST['pladdress']}','{$_POST['plqty']}')";

您的查询可能会给您一条错误消息,但您的代码中有错字,请将$conn 替换为$connection 以阅读它,如下所示:

echo "Error: " . $sql . "<br>" . mysqli_error($connection);

最后,这一点很重要,您编写代码的方式非常很危险,因为您在接受用户输入时没有经过任何过滤。我建议您谷歌SQL injection 了解更多信息。

【讨论】:

  • 感谢您的回答,但即使我将 $Conn 更改为 $connection,仍然没有收到任何错误。和 $sql 格式。 :( 并且 mysql 中没有数据
  • link 这是我对 DB 的选择
  • $sql = ...like之后,写echo $sql;exit;,取SQL查询并在phpMyAdmin中运行,看看是否有效。它是否包含您想要的值?
  • 是的,它可以插入 1 行。插入的行 ID:14(查询耗时 0.0001 秒。)
  • 现在我收到此错误错误:INSERT INTO wp_telemetry_place (plUserID, plName, plCity, plAddress, plTerminalQ) VALUES ('GEeUoMlNou','Macgregor','Gardabaan','Bulvachauri Str 2-11' ,'4')
【解决方案2】:

主要问题是我改变了“我”

if (mysqli_query($connection, $sql)) {
      echo "New record created successfully";
} else {
      echo "Error: " . $sql . "<br>" . mysqli_error($connection);}

if (mysql_query($connection, $sql)) {
      echo "New record created successfully";
} else {
      echo "Error: " . $sql . "<br>" . mysql_error($connection);}

现在它完美运行了,我只需要看看 SQL 注入就可以了。无论如何谢谢你们:))

【讨论】:

    猜你喜欢
    • 2015-01-28
    • 1970-01-01
    • 2013-10-12
    • 2016-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-02
    • 2016-04-09
    相关资源
    最近更新 更多