日期:2014-05-17  浏览次数:20418 次

如何把一个数组合适的插入到数据库?
html代码:


<input type="checkbox" name="attachment[]" value="1.jgp"/>图片1
<input type="checkbox" name="attachment[]" value="2.jpg"/>图片2
<input type="checkbox" name="attachment[]" value="3.jpg"/>图片3


php代码:
//图片附件区
$attachment = $this->var['gp_attachment'];

foreach($attachment as $value){
p($value);
//把值保存到数据库
}

数组格式
Array
(
  [0] => 1.jgp
  [1] => 2.jpg
)
 php: 5.3.10


------解决方案--------------------
在数据库中定义:
SQL code

data varchar(100) not null

------解决方案--------------------
PHP code
foreach($attachment as $v)
     mysql_query("insert...........");  //不知道你的字段,只能这么写了.

------解决方案--------------------
把数组的值取出来存到库中,用特殊字符隔开,需要用的时候取出来再处理
------解决方案--------------------
比较支持3楼的建议
------解决方案--------------------
存储时候:
$date = "1.jgp/1.jgp";
用到时候: 
list($one, $two) = split ('[/.-]', $date); 
echo "one: $one;two: $two<br />\n";
 
------解决方案--------------------
第一,你觉得你是字符数组,还是数字数组,如果用数字数组,用foreach($attachment as $v)

、、
第二,是字符数组,就用三楼的,把字符隔开,,一起存入数据库。
------解决方案--------------------
所有附件应该都属于一个主题 而且也不需要经常修改,一个字段搞定.需要的时候还原一下

PHP code

$arr=array('1.jpg','2.jpg','3.jpg');
$value=serialize($arr);

------解决方案--------------------
无论如何,请使用addslashes之后入库,没有人知道用户提交的到底是什么。

上面的json_encode,serialize,之后都要addslashes,避免引号或者用户恶意注入带来的不必要的麻烦,出库时候strip_slashes。

------解决方案--------------------
序列化
------解决方案--------------------
探讨

无论如何,请使用addslashes之后入库,没有人知道用户提交的到底是什么。

上面的json_encode,serialize,之后都要addslashes,避免引号或者用户恶意注入带来的不必要的麻烦,出库时候strip_slashes。