【问题标题】:Insert multiple enteries into one db column将多个条目插入一个 db 列
【发布时间】:2016-01-02 12:12:26
【问题描述】:

如何将多个文件的名称插入一列?文件名将存储在同一列中,以逗号分隔。

if(move_uploaded_file($_FILES["fupload"]["tmp_name"][$f], $path.$name)) {
    $count++;
    mysql_query("INSERT INTO product(id, product_name, image) VALUES ('$id','$_POST[productname]', '$name')");}

【问题讨论】:

    标签: php database string database-design


    【解决方案1】:

    您不应该这样做,您最好创建一个新表,例如uploaded_files,并通过foreign key 将其与product 表链接,例如product_id。在一列中包含所有文件路径不是一个好习惯。

    【讨论】:

    • 是的,我想是的。但我需要不同的方式,路径不存储到列中,仅文件名
    【解决方案2】:

    尽管@Ehsan-Abd 以最推荐的方式回答了这个问题,即使用单独的表格,但如果您仍想使用自己的方法,您需要处理所有输入并连接文件名,然后,使用单个INSERT 插入最后一个字符串。

    $names=''; foreach($filename as $name){ $names.=','.$name; } if($names!=''){ $names=substr($names,1); }


    mysql_query("INSERT INTO product(id, product_name, image) VALUES ('$id','$_POST[productname]', '$names')");}
    

    【讨论】:

    • 谢谢,它有效!但是第一个数据总是存储逗号(,)这样=“,photo1.jpg,photo2.jpg,photo3.jpg”如何删除第一个逗号
    • 我更新了答案来解决这个问题。您可能需要在 php.net 文档的帮助下更多地练习 php。我强烈建议您在编码时在浏览器窗口中保持打开状态。
    • @Tom 你可以使用implode,比如$names_with_comma_between = implode(',', $filenames);
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-12
    • 2014-07-09
    • 1970-01-01
    • 2019-10-04
    • 1970-01-01
    • 1970-01-01
    • 2011-11-01
    相关资源
    最近更新 更多