- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
就像,我有一行包含这个 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
我的代码
//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/
我是一名优秀的程序员,十分优秀!