【问题标题】:Inserting data to MySQL database from droplist从下拉列表中将数据插入 MySQL 数据库
【发布时间】:2013-08-20 01:38:01
【问题描述】:

我有将值插入 mysql 数据库的代码。但问题没有插入任何东西。

我想要的是如果用户从下拉列表 table1 中选择。值插入到 table1 和 table2 的儿子中。

我的html代码

 <html>
 <body>

 <form method="post" action="update.php">
 <input type="txt" name="name"/>
 <select name="tables">
 <option value="table1">table1</option>
 <option value="table2">table2</option>
 <option value="table3">table3</option>
 <option value="table4">table4</option>
 </select>

<input type="submit" value="Submit Pick" />

</body>
</html>

我的php代码

<?php


$table =$_POST['tables'];
$name =$_POST['name'];

$con=mysqli_connect("localhost","sqldata","sqldata","accounts");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

$sql="INSERT INTO $table (name)
VALUES
('$_POST[name]')";



echo ".$table.$name";

?>

【问题讨论】:

  • ...你永远不会插入任何东西。您只需创建 SQL 字符串,然后……什么都没有。

标签: php


【解决方案1】:

您从未真正运行过查询。定义 $sql 后,执行它。

mysqli_query($con, $sql);

还要注意,希望这只是测试代码。您绝对不能在未通过mysqli_escape_string 之类的方式传递请求的情况下从请求中获取原始输入。

【讨论】:

  • 我收到此错误:警告:mysqli_escape_string() 需要 2 个参数,1 在 /var/www/html/download/update.php 第 4 行给出 警告:mysqli_escape_string() 需要 2 个参数, 1 在第 5 行的 /var/www/html/download/update.php 中给出 错误:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“(名称)值('mike')'附近使用正确的语法
  • 您需要mysqli_escape_string ( $con ,$name); 查看手册:php.net/manual/en/mysqli.real-escape-string.php(注意mysqli_escape_stringmysqli_real_escape_string 的别名...除了名称之外它们是相同的)。
  • 我再次出现错误:注意:未定义变量:第 5 行 /var/www/html/download/update.php 中的 con 警告:mysqli_escape_string() 期望参数 1 为 mysqli,在/var/www/html/download/update.php 第 5 行
【解决方案2】:

您的代码包含一些错误。一旦你永远不会调用mysqli_query 将 SQL 发送到服务器。此外,您的 sql 字符串中存在错误。如果要插入数组的值,则必须使用方括号:{$_POST[name]}。更好的是使用mysqli_escape_string。所以你的代码应该是这样的:

$name = mysqli_escape_string($con, $_POST['name']);

$sql="INSERT INTO $table (name)
VALUES
('$name')"

mysqli_query($con, $sql);

【讨论】:

  • 我收到此错误:警告:mysqli_escape_string() 需要 2 个参数,1 在 /var/www/html/download/update.php 第 4 行给出 警告:mysqli_escape_string() 需要 2 个参数, 1 在第 5 行的 /var/www/html/download/update.php 中给出 错误:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“(名称)VALUES('mike')”附近使用正确的语法
  • 我已编辑代码以将$con 作为参数传递给mysqli_escape_string
猜你喜欢
  • 2017-12-02
  • 1970-01-01
  • 1970-01-01
  • 2011-12-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多