Php 如何使用mysqli在表中的特定字段中插入多个值?
我正在做一个项目,我有这样一个场景: 我的表中有许多字段:Php 如何使用mysqli在表中的特定字段中插入多个值?,php,mysql,mysqli,database-normalization,multivalue,Php,Mysql,Mysqli,Database Normalization,Multivalue,我正在做一个项目,我有这样一个场景: 我的表中有许多字段: table_name : transaction_tbl -id -name -description -ref_number : text(datatype) 在此插入我的代码: $sql = "INSERT INTO transaction_tbl (`name`,`description`,`ref_number`) VALUES ('$name','$desccription',$ref_number)"; if (
table_name : transaction_tbl
-id
-name
-description
-ref_number : text(datatype)
在此插入我的代码:
$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 ^__^" ;
}
由于名称本身是参考号或参考号,所以有一段时间我会有很多参考号,如果它有多个值,我怎么能让它插入?
谢谢:)
更新:
我想要这样的东西:
name description ref_number
bag to be use 10359435846
05438547656
035848576
为了什么?为什么不插入一个新行,该行的名称和描述相同,引用号不同 但如果您愿意,您可以将新的参考号与现有的连接起来 首先检查它是否已经存在 获取其值,然后连接新的参考号。。 如果不存在,请插入新行
$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);
}
在一个单元格中有多个值不是一个好的做法(除非有严重的原因,否则不应该这样做)。它违反了基本的数据库规则。只需将其拆分为两个表,并分配外键将它们链接起来 学习数据库规范化。有很多例子。在这里,您需要将您的非规范化(0NF)表至少设置为第一个规范化级别(1NF)。但建议至少将其标准化到第三级 谷歌数据库规范化教程。根据你们的要求,下面的图片会给你们一个想法(字段名称和你们的问题不一样) 首先将值插入表1(成员表),并在php中获取插入id use
$iid=mysqli\u insert\u id()
接下来,将多个值作为单独的行添加到第二个表(数据库表)以及第一步中获得的主键中
请记住,这不是一个教程网站。在网上查找更多信息。使用一个单独的表,每个事务和参考号各有一行。这就是所谓的连接表。我该怎么做?你能举个例子吗?一个单元格中不能有多个VAL。它违反了基本的数据库规则。只需将其拆分为两个表,并使用外键将thm链接起来。学习数据库规范化。有很多例子。在这里,您需要将您的未规范化(0nF)表至少设置为第一个规范化级别(1nF)。但建议至少将其标准化到第三级。是的,除了制作两张标准化的表格之外,没有其他方法了吗?那我就用explode怎么样?它会给你带来很多麻烦的。很多。。。。性能问题。表1链接问题。在使用这种结构创建一些高级查询时,您可能会在某个时候被绊倒。如果我只使用explode呢?我怎样才能做到这一点?我也在使用mysqlinever来做到这一点。使用两个单独的表格。这不是一个好的做法。。像kuma DK。。只需使用另一行/表格。。但是是的。。您只需使用explode,使用“|”,不要否决bcuz我刚才回答了他想做的事:)