Hay All, 我似乎无法理解这个数字,我读到的例子。基本上我有一个2d数组,并希望将其插入MySQL。该数组包含几个字符串。
我无法让以下工作......
$value = addslashes(serialize($temp3));//temp3 is my 2d array, do i need to use keys? (i am not at the moment)
$query = "INSERT INTO table sip (id,keyword,data,flags) VALUES(\"$value\")";
mysql_query($query) or die("Failed Query");
谢谢大家,
答案 0 :(得分:2)
不确定这是对你的问题的完整答案,但至少有几个可能的问题:
addslashes
;相反,使用mysql_real_escape_string
"
)arround字符串值,而应使用单引号('
)values()
部分中的字段应与字段列表中的字段数一样多:
id,keyword,data,flags
VALUES(\"$value\")
mysql_error()
来了解执行SQL查询时遇到的确切错误
答案 1 :(得分:0)
<?php
// let's assume we have a 2D array like this:
$temp3 = array(
array(
'some keywords',
'sme data',
'some flags',
),
array(
'some keywords',
'sme data',
'some flags',
),
array(
//...
),
);
// let's generate an appropriate string for insertion query
$aValues = array();
foreach ($temp3 as $aRow) {
$aValues[] = "'" . implode("','", $aRow) . "'";
}
$sValues = "(" . implode("), (", $aValues) . ")";
// Now the $sValues should be something like this
$sValues = "('some keywords','some data', 'someflags'), ('some keywords','some data', 'someflags'), (...)";
// Now let's INSERT it.
$sQuery = "insert into `my_table` (`keywords`, `data`, `flags`) values $sValues";
mysql_query($sQuery);
答案 2 :(得分:0)
答案 3 :(得分:0)
试试这个:
// lets array
$data_array = array(
array('id'=>1,'name'=>'a'),
array('id'=>2,'name'=>'b'),
array('id'=>3,'name'=>'c'),
array('id'=>4,'name'=>'d'),
array('id'=>5,'name'=>'e')
)
;
$temp_array = array_map('implode', $data_array, array('","' ,'","','","','","','","'));
echo $query = 'insert into TABLENAME (COL1, COL2) values( ("'.implode('"),("', $temp_array).'") )';
mysql_query($query);