如何使用 mysqli 在 table 的特定字段中插入多个值?
How to insert multiple values in a specific field in a table using mysqli?
我正在做一个项目,我有这样一个场景:
我的 table 中有很多字段:
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 ^__^" ;
}
因为名字本身ref_number或者参考号,所以有时候我会有很多参考号,如果它有多个值,我怎么让它插入?
谢谢:)
更新:
我想要这样的东西:
name description ref_number
bag to be use 10359435846
05438547656
035848576
为了什么目的?为什么不插入一个具有相同名称和描述但 ref_number 不同的新行?
但如果您愿意,可以将新的 ref_number 与现有的 ..
连接起来
首先检查它是否已经存在
获取它的值然后连接新的参考号..
或者如果它不存在,插入一个新行..
$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);
}
在一个单元格中包含多个值不是一个好习惯(除非有重要原因,否则永远不要这样做)。它违反了基本的数据库规则。只需将其拆分为两个 table 并将外键分配给 link 它们。
学习数据库规范化。有很多例子。在这里,您需要将非标准化 (0NF) table 至少达到第一标准化水平 (1NF)。但建议至少将其标准化到第 3 级
google 用于数据库规范化教程。正如您所要求的,下面的图片会给您一个想法(字段名称与您的问题中的名称不同)。
首先将值插入 table1(Member table) 并在 php 中获取插入 ID 使用 $iid = mysqli_insert_id()
接下来将多个值作为单独的行添加到第二个 table(数据库 table)中,连同第一步中获得的主键。
请记住,这不是教程网站。在网上查找更多信息。
我正在做一个项目,我有这样一个场景: 我的 table 中有很多字段:
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 ^__^" ;
}
因为名字本身ref_number或者参考号,所以有时候我会有很多参考号,如果它有多个值,我怎么让它插入? 谢谢:)
更新:
我想要这样的东西:
name description ref_number
bag to be use 10359435846
05438547656
035848576
为了什么目的?为什么不插入一个具有相同名称和描述但 ref_number 不同的新行?
但如果您愿意,可以将新的 ref_number 与现有的 ..
连接起来首先检查它是否已经存在 获取它的值然后连接新的参考号.. 或者如果它不存在,插入一个新行..
$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);
}
在一个单元格中包含多个值不是一个好习惯(除非有重要原因,否则永远不要这样做)。它违反了基本的数据库规则。只需将其拆分为两个 table 并将外键分配给 link 它们。
学习数据库规范化。有很多例子。在这里,您需要将非标准化 (0NF) table 至少达到第一标准化水平 (1NF)。但建议至少将其标准化到第 3 级
google 用于数据库规范化教程。正如您所要求的,下面的图片会给您一个想法(字段名称与您的问题中的名称不同)。
首先将值插入 table1(Member table) 并在 php 中获取插入 ID 使用 $iid = mysqli_insert_id()
接下来将多个值作为单独的行添加到第二个 table(数据库 table)中,连同第一步中获得的主键。
请记住,这不是教程网站。在网上查找更多信息。