How to insert multiple values in a specific field in a table using mysqli?
本问题已经有最佳答案,请猛点这里访问。
我正在研究一个项目,我有一个这样的场景:
我桌子上有很多字段:
1 2 3 4 5 | table_name : transaction_tbl -id -name -description -ref_number : text(datatype) |
在我的插入这里是我的代码:
1 2 3 4 5 6 7 8 | $sql ="INSERT INTO transaction_tbl (`name`,`description`,`ref_number`) VALUES ('$name','$desccription',$ref_number)"; if ($conn->query($sql) === false){ trigger_error('Wrong SQL: ' . $sql . 'Error: ' . $conn->error , E_USER_ERROR); }else { echo"Successful ! Data is inserted in database ^__^" ; } |
由于名称本身是ref_number或参考号,所以有一段时间我会有很多参考号,如果它有多个值我怎么能让它插入?
谢谢 :)
更新:
我想要这样的东西:
1 2 3 4 | name description ref_number bag to be use 10359435846 05438547656 035848576 |
在一个单元格中拥有多个值并不是一个好习惯(除非有严重的原因,否则你永远不应该这样做)。它违反了基本的数据库规则。只需将其拆分为两个表并分配外键即可将其链接起来。
学习db规范化。有很多例子。在这里,您需要将未规范化(0NF)表至少提升到第一个标准化级别(1NF)。但它建议将其标准化至少达到第3级
谷歌的数据库规范化教程。根据您的要求,下面的图片会给您一个想法(字段名称与您的问题中的字段名称不同)。
首先将值插入table1(成员表)并在php中使用
接下来,将多个值作为单独的行与第一步中获得的主键一起添加到第二个表(数据库表)中。
请记住,这不是一个教程网站。在网上查找更多信息。
出于什么目的 ?为什么不直接插入具有不同ref_number的相同名称和描述的新行?
但如果您愿意,可以将新的ref_number与现有的连接。
首先检查它是否已经存在
得到它的值,然后连接新的参考号..
或者如果它不存在,插入一个新行..
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | $sql ="SELECT `ref_number` FROM `transaction_tbl` WHERE `name`='$name' AND `description`='$description'"; $query = mysql_query($sql); if(mysql_num_rows($query) > 0) { $row = mysql_fetch_array($query); $new_ref = $row['ref_number'] . '|' . $ref_number; $upd ="UPDATE `transaction_tbl` SET `ref_number`='$new_ref' WHERE `name`='$name' AND `description`='$description'"; } else { $ins ="INSERT INTO transaction_tbl (`name`,`description`,`ref_number`) VALUES ('$name','$desccription',$ref_number)"; mysql_query($ins); } |