关于php中的mysql查询

关于php中的mysql查询,php,mysql,Php,Mysql,我想知道是否可以在一个php代码中使用多个insert查询。就像我点击保存按钮时一样。我的php代码将在同一个表上执行多次插入?可能吗 示例:tb\u字段为“id”和“name”的人员 我有3个名称输入,如果单击保存按钮,我需要输入一个值 示例代码: <?php if(isset($_POST['save'])) { $name1 = $_POST['name1']; $name2 = $_POST['name2']; $name3 = $_POST['na

我想知道是否可以在一个php代码中使用多个insert查询。就像我点击保存按钮时一样。我的php代码将在同一个表上执行多次插入?可能吗

示例:
tb\u字段为“id”和“name”的人员

我有3个名称输入,如果单击保存按钮,我需要输入一个值

示例代码:

<?php
  if(isset($_POST['save']))
  {
    $name1 = $_POST['name1'];
    $name2 = $_POST['name2'];
    $name3 = $_POST['name3'];
    mysql_query("INSERT into tb_people(name) VALUES ('$name1')");
    mysql_query("INSERT into tb_people(name) VALUES ('$name2')");
    mysql_query("INSERT into tb_people(name) VALUES ('$name2')");
  }
?>
是的,这是可能的

所有这些都是调用3个mysql查询到数据库


您的代码示例也应该可以很好地实现这一点。

是的。但是在使用MySQL之前要了解更多

$name1 = mysql_real_escape_string($_POST['name1']);
$name2 = mysql_real_escape_string($_POST['name2']);
$name3 = mysql_real_escape_string($_POST['name3']);
mysql_query("INSERT INTO `tb_people` (`name`) VALUES ('$name1'), ('$name2'), ('$name3');");

>


您甚至可以这样做:

HTML:

MySQL非常强大。试着用一个准备好的查询来做到这一点

另外,如果你像我一样,认为每次键入的
mysql\u real\u escape\u string
都是个混蛋

function dbesc($n) {return mysql_real_escape_string($n);}
你的代码应该可以工作。 最好有一些针对SQL注入的保护,如下所示

  • 我已将addslashes更改为mysql\u real\u escape\u字符串。所以现在应该没事了

    $name1=mysql\u real\u escape\u字符串($\u POST['name1']); $name2=mysql\u real\u escape\u字符串($\u POST['name2']); $name3=mysql\u real\u escape\u字符串($\u POST['name3']); mysql_查询(“插入到
    tb_人中”(
    name
    )值(“$name1”)、($name2”)、($name3”);”


你为什么不试试呢?是的,绝对有可能。。。是的,这是可能的,
值(“$name1”)、(“$name2”)、(“$name3”)
是的,这是可能的。作为额外的好处,您实际上可以通过一个插入查询完成所有这些。阅读这里的MySQL文档,了解如何一次插入多组值的语法-我可以通过一个准备好的查询来做到这一点:不漂亮,但这是可能的。
addslashes
根本不是防止SQL注入的安全方法。请阅读文档:另请参阅:@RocketHazmat,mysql_real_escape_字符串扩展从PHP5.5.0开始就已被弃用,并将在将来被删除。其他选项有mysqli_real_escape_string()和PDO::quote()。这里最好的选项是准备好的语句。@RocketHazmat很棒的建议。我很感激。谢谢
$toinsert = array_map(function($n) {
    return "('".mysql_real_escape_string($n)."')";
},$_POST['name']);
mysql_query("INSERT INTO `tb_people` (`name`) VALUES ".implode(", ",$toinsert));
function dbesc($n) {return mysql_real_escape_string($n);}