我有以下数组,我想插入到mysql数据库中。
我正在使用以下函数插入位于functions.php中的数据库:
//Capture items
function item($register_data)
{
array_walk($register_data,'array_clean');
$fields = ' '.implode(',',array_keys($register_data)).' ';
$data = '\''.implode('\',\'',$register_data).'\'';
//Insert user Data into the database
$query = "INSERT INTO items ($fields) VALUES ($data)";
mysql_query($query);
}
现在这是我插入的方式:
for($i =0;$i<4;$i++)
{
$item = array($i = item[i]);
}
//Call the function to insert into the database
item($item);
此方法似乎不起作用。请协助
答案 0 :(得分:1)
PHP内置序列化&amp;为此反序列化函数(http://php.net/manual/en/function.serialize.php)。您可以将任何对象或数组传递给它,它将返回一个序列化字符串,您可以将其存储在数据库的单个字段中。
答案 1 :(得分:1)
由于您的项目表有两列,其中一列是id
(自动增量),您将要跳过它并仅指定第二列ItemName
。这在this page的mysql文档中有描述。
假设您想在此表中插入5项运动:
$sports[0] = "Soccer";
$sports[1] = "Rugby";
$sports[2] = "Football";
$sports[3] = "Netball";
$sports[4] = "Hockey";
您希望查询看起来像这样:
INSERT INTO items (ItemName) VALUES ('Soccer'), ('Rugby'), ('Football'), ('Netball'), ('Hockey');
代码看起来像这样:
function insert($insert_data)
{
$fields = implode(', ', $insert_data);
$data = '(\''.implode('\'), (\'', $insert_data).'\')';
//mysql_query("INSERT INTO items (ItemName) VALUES $data;");
echo "INSERT INTO items (ItemName) VALUES $data;";
}
$sports = array();
$sports[0] = "Soccer";
$sports[1] = "Rugby";
$sports[2] = "Football";
$sports[3] = "Netball";
$sports[4] = "Hockey";
insert($sports);