gpt4 book ai didi

php - 如何向数据库中插入一些与另一行相同的信息?

转载 作者:行者123 更新时间:2023-11-29 19:04:49 25 4
gpt4 key购买 nike

就像,我有一行包含这个 information 。隐藏列决定它在研究中是否可见 (0) 或不可见 (1)。

我想插入一个新行,其中包含与隐藏数字=1的行类似的信息(尤其是相同的名称)。但现在,如果我插入具有 hidden number = 1 的计算机的相同信息(例如 IT-Melanie),它只会“刷新”已有的行,没有创建新的!是否有可能创建一个具有相同名称的新行(例如 IT-Melanie),但可能会插入一些不同的其他信息,而不更新现有的行?这就像我们在数据库中复制一行,但信息相同。

我在这里发现的唯一的想法是在 javascript 中重复一行,但这不是我想要的。我尝试插入多次信息以使两行相似但没有成功,仅更新数据库中已存在的行!

回顾:我想插入一台与数据库中已存在的计算机同名的新计算机,但旧计算机将具有隐藏数字 = 1,而新计算机= 0.

问题:我们可以在不编辑旧行的情况下放置具有相同 computer_name 的两行吗?

示例:

旧行:Computer_name = It_melanie 产品编号= xxxxx-xxxxxx-xxxxx-xxxxxx-xxxxx [...] 隐藏=1

新行:Computer_name = It_melanie 产品编号= xxxxx-xxxxxx-xxxxx-xxxxxx-xxxxx [...] 隐藏=0

Unique Key

我的代码

    //Get informations in the form and insert it into db
$location=$_GET['location'];
$dept=$_GET['dept'];
$jack=$_GET['jack'];
$computername=$_GET['computername'];
$productkey=$_GET['productkey'];
$model=$_GET['model'];
$vendor=$_GET['vendor'];
$serialnumber=$_GET['serialnumber'];
$macaddress=$_GET['macaddress'];
$status=$_GET['status'];
$starphone=$_GET['starphone'];
$intid=$_GET['intid'];
$did=$_GET['did'];
$software=$_GET['software'];
$query='insert into department(
department,
location_id)values(
"'.$dept.'",
"'.$location.'")';
if(valid_query($query)){
$message .= "Enregistrement a ete mis a jour<br>";
}else{
$message .= "Enregistrement n a pas ete mis a jour! S'il vous plait contacter le Departement TI IOS<br>";
}
$query='insert into computer(
computer_name,
product_key,
model,
serial_number,
status_id,
starphone,
inst_id,
did,
macaddress,
software_id,
hidden
)values(
"'.$computername.'",
"'.$productkey.'",
"'.$model.'",
"'.$serialnumber.'",
"'.$status.'",
"'.$starphone.'",
"'.$intid.'",
"'.$did.'",
"'.$macaddress.'",
"'.$software.'",
0
)';
if(valid_query($query)){
$message .= "Enregistrement a ete mis a jour<br>";
}else{
$message .= "Enregistrement n a pas ete mis a jour! S'il vous plait contacter le Departement TI IOS<br>";
}
$query="select dept_id from department where department='$dept' and location_id='$location'";
$deptid=select_query($query);
$query="select computer_id from computer where computer_name ='$computername'";
$computerid=select_query($query);
$query='insert into jack(
jack_number,
dept_id,
location_id,
computer_id
)values(
"'.$jack.'",
"'.$deptid.'",
"'.$location.'",
"'.$computerid.'")';
if(valid_query($query)){
$message .= "Enregistrement a ete mis a jour<br>";
}else{
$message .= "Enregistrement n a pas ete mis a jour! S'il vous plait contacter le Departement TI IOS<br>";
}

$query='insert into computer_vendor(
computer_id,
vendor_id
)values(
"'.$computerid.'",
"'.$vendor.'")';
if(valid_query($query)){
$message .= "Enregistrement a ete mis a jour<br>";
}else{
$message .= "Enregistrement n a pas ete mis a jour! S'il vous plait contacter le Departement TI IOS<br>";
}
$location="";
$dept="";
$jack="";
$computername="";
$productkey="";
$model="";
$vendor="";
$serialnumber="";
$macaddress="";
$status="";
$starphone="";
$intid="";
$did="";

最佳答案

首先,确保列computer_name 未标记为UNIQUE
- 要通过终端、cmd 或任何 shell 连接到 MySQL,请登录表所在的数据库。 (运行 mysql -u <mysql_user> -p <db_name> )然后使用 DESCRIBE <table_name>;在值为 Key 的列中,检查 computer_name 的值为 UNI - 这意味着它被标记为 UNIQUE 。结果示例:img
其次,从列中删除UNIQUE约束
- 为此(当您仍然通过 shell 连接到 MySQL 并且仍然在同一个数据库中时)使用 ALTER TABLE <table_name> DROP INDEX computer_name; 。第三,检查你是否成功。
-再次使用DESCRIBE <table_name>;如果Key列中仍有值UNI,请再次执行步骤2。

祝你好运。

关于php - 如何向数据库中插入一些与另一行相同的信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43590544/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com