Php 在查询中传递拆分的值 如何通过查询发送这些值。 我提出问题的方式很好。

Php 在查询中传递拆分的值 如何通过查询发送这些值。 我提出问题的方式很好。,php,Php,这很容易受到攻击。使用,而不是: 您不需要指定自动编号的主键的ID。我将执行以下操作: $st = $pdo->prepare("INSERT INTO " . "uploadfile(UF_NAME,GENRE,CAT_ID,SUB_CAT_ID,TAG,DESCRIPTION) " . "VALUES(?,?,'1','1',?,?)"); $st->execute(); 不是: 注意,我也改变了mysql\u insert\u id的使用方

这很容易受到攻击。使用,而不是:

您不需要指定自动编号的主键的ID。

我将执行以下操作:

$st = $pdo->prepare("INSERT INTO " .
         "uploadfile(UF_NAME,GENRE,CAT_ID,SUB_CAT_ID,TAG,DESCRIPTION) " .
         "VALUES(?,?,'1','1',?,?)");
$st->execute();
不是:

注意,我也改变了mysql\u insert\u id的使用方式。出于同样的原因


*-就像我用$comma_separated所做的那样

使用一个关联数组并通过它循环,将其各自的键/值附加到2个字符串中。我可以想象随机mysql_insert_id不应该在那里,可能应该是null,或者只是从查询中完全删除。至少它应该从字符串中分离出来,以实际调用函数…@DaveRandom oops。通过完全删除ID修复。此密钥应由数据库设置。在php中执行此操作会保证一致性问题,而且速度不必要地慢。这是正确的,并表示同意,但需要注意的是,如果他插入的记录与前一次插入创建的记录相关,则可能是对该记录的有效使用,尽管显然,如果您使用PDO,它将不再有效。但是,我可以自信地猜测,这是不必要的,你的新版本是正确的。
$st = $pdo->prepare("INSERT INTO " .
         "uploadfile(UF_NAME,GENRE,CAT_ID,SUB_CAT_ID,TAG,DESCRIPTION) " .
         "VALUES(?,?,'1','1',?,?)");
$st->execute();
<?php

$array = array('name1', 'name2', 'name3');

$first=true;
$comma='';
$comma_separated='';
foreach($array as $value)
{
    if($first)
    {
        $first=false;
        $comma=',';
    }
    $comma_separated .= $comma.mysql_real_escape_string($value);
}

$result =mysql_query("INSERT INTO uploadfile (UF_ID,UF_NAME,GENRE,CAT_ID,SUB_CAT_ID,TAG,DESCRIPTION) VALUES('".mysql_insert_id()."','{$comma_separated}','".mysql_real_escape_string($GENRE)."','1','1','".mysql_real_escape_string($tag)."','".mysql_real_escape_string($optionaldescription)."');");
if(!$result)
{
    die( mysql_error() );
}

?>
"'1', '1', '{$tag}'" 
"'1', '1', '$tag'"