Php 在MySQL查询中插入值是否有比仅插入值($var1、$var2、$var3)更好的方法?

Php 在MySQL查询中插入值是否有比仅插入值($var1、$var2、$var3)更好的方法?,php,mysql,sql,Php,Mysql,Sql,我只需要将15个值的数组全部插入表中。 我只是想知道是否有这样的事情: INSERT INTO table VALUES($myarrayofvalues) 只是好奇,会很有用的 更新: 只有一行15列 $query = "INSERT INTO table VALUES('" . implode("', '", $myarrayofvalues) . "')"; 编辑: 如果您还没有完成转义,可以在上面的语句之前在一个小循环中完成,例如: foreach($myarrayofvalues

我只需要将15个值的数组全部插入表中。 我只是想知道是否有这样的事情:

INSERT INTO table VALUES($myarrayofvalues)
只是好奇,会很有用的

更新:
只有一行15列

$query = "INSERT INTO table VALUES('" . implode("', '", $myarrayofvalues) . "')";
编辑

如果您还没有完成转义,可以在上面的语句之前在一个小循环中完成,例如:

foreach($myarrayofvalues as $k=>$v)
    $myarrayofvalues[$k] = mysql_real_escape_string($v);

虽然您可以按照Rick的回答进行操作,但它对SQL注入是开放的

如果没有某种列映射,就没有很好的方法可以做到这一点。说明元素1是字符串,元素2是整数

因此,我认为有两种选择:

  • 逃避一切

    $values = array();
    foreach ($myarrayofvalues as $value) {
      $column[] .= "'" . mysql_real_escape_string($value) . "'";
    }
    $sql = "INSERT INTO table VALUES(" . implode(',', $values) . ")";
    
  • 编写完整的SQL语句

    $sql = "INSERT INTO table (column1_string, column2_int, ...)
      VALUES ('" . mysql_real_escape_string($myarray[0]) . "', " . (int)$myarray[1] . ", ...)
    

  • 我更喜欢#2,因为它更易读,也不那么脆弱。当前,如果您的架构或数组发生更改,您的代码将中断。

    您是要插入一行15列,还是一列15行?@Jason始终是一个问题,是的。这个答案仅仅是相对于标题而言的,没有任何预防措施。不知道变量或数组来自哪里,对吧?这已经可以做到了。如果没有,那么在这种情况下,就我所知,它必须在查询行之前完成,但是可以使用,我认为这保持了OP所寻求的好处。