< ? php
$array = array('name1', 'name2', 'name3');
$comma_separated = implode(",", $array);
echo $comma_separated;
mysql_query("INSERT INTO uploadfile(UF_ID,UF_NAME,GENRE,CAT_ID,SUB_CAT_ID,TAG,DESCRIPTION) VALUES('mysql_insert_id()','$comma_separated','$GENRE','1','1','$tag','$optionaldescription')") ? >
答案 0 :(得分:2)
我会做以下事情:
<?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() );
}
?>
注意mysql_real_escape_string()
的使用;此函数转义SQL的输入并保护您的SQL注入。此外,如果您之前已经转义了值*
,我建议您在SQL查询字符串中使用插值。像这样:
"'1', '1', '{$tag}'"
不
"'1', '1', '$tag'"
请注意,我已经更改了mysql_insert_id()
的使用方式。出于同样的原因。
*
- 就像我使用$comma_separated
答案 1 :(得分:0)
这很容易被SQL injection攻击。请改用PDO和prepared statements:
$st = $pdo->prepare("INSERT INTO " .
"uploadfile(UF_NAME,GENRE,CAT_ID,SUB_CAT_ID,TAG,DESCRIPTION) " .
"VALUES(?,?,'1','1',?,?)");
$st->execute();
您无需指定主要自动编号密钥的ID。