我有一个关于PHP数组的问题,并将它们作为单个记录插入到MySQL数据库中。我已经对数组进行了排序,并且它正常工作。
这就是我对阵列所拥有的:
$files = array();
foreach($_FILES['file']['tmp_name'] as $key => $tmp_name )
{
$files[$key] = array
(
$file_name = $_FILES['file']['name'][$key],
$file_type=$_FILES['file']['type'][$key],
$file_size =$_FILES['file']['size'][$key],
$file_tmp =$_FILES['file']['tmp_name'][$key]
);
}
这是我为数组将它们作为单独的行插入到数据库中的原因:
$new = array();
foreach($files as $key => $value)
{
$new[] = "'".implode("','", $value)."'";
}
$query = "(".implode("), (",$new).")";
$sqlone = "INSERT INTO files (filename, filetype, filesize, filetempname) VALUES ".$query."";
if (!mysql_query($sqlone, $conn))
{
die("Error: " . mysql_error().".");
}
我遇到的问题是:我想在查询中添加额外的信息,但我不完全确定如何做到这一点。
我希望能够添加对文件附加到的电子邮件的引用。我基本上希望查询如下:
$sqlone = "INSERT INTO files (filename, filetype, filesize, filetempname, mailid //this is the extra column in the database) VALUES ".$query.", '1'// this is the corresponding value";
我遇到的问题是我在尝试向其添加额外信息时收到错误。
你们有什么指示可以给我吗?
提前致谢
答案 0 :(得分:1)
只需更改括号的位置(并引用输入):
$query = "('".implode("'), ('",$new);
$sqlone = "INSERT INTO files (filename, filetype, filesize, filetempname, mailid) VALUES ".$query."', '1')";
应该导致SQL:
INSERT INTO files (filename, filetype, filesize, filetempname, mailid) VALUES
('<file_name>', '<file_type>', '<file_size>', '<file_tmp_name>', '1')