以下问题有2个表," Daten"和"服务器"在我的Mysql数据库中称为" csv"他们都得到了" ServerID"在他们里面作为一个列。如何在列" ServerID"中复制数据?从表格"服务器"到" Daten"。
我可能不得不说"服务器" "服务器ID"是自动增量。
我想要的结果是:在ServerID中是一个数字,我也希望在另一个表中使用该数字。
我试过这个,但它只给了我:" 111111111111111111111111111111111111"
$con=mysqli_connect("localhost","THUNI","root","csv");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$sql="SELECT ServerID FROM Server";
$result=mysqli_query($con,$sql);
//Associative array
$row=mysqli_fetch_array($result, MYSQLI_ASSOC);
printf ($row["ServerID"]);
// Free result set
mysqli_free_result($result);
有人可以帮助我吗?
答案 0 :(得分:1)
INSERT INTO Server (ServerID)
SELECT ServerID FROM Daten;
这将从Daten
向服务器插入ServerID将数据从表复制到另一个表的正确方法是:
INSERT INTO table2
SELECT * FROM table1;
或
INSERT INTO table2
(column_name(s))
SELECT column_name(s)
FROM table1;
在你的脚本中,它应该是那样的
$con=mysqli_connect("localhost","THUNI","root","csv");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$sql="Insert into Server
Select * from Daten";
mysqli_query($con,$sql); // That inserts the data from Daten to Server
$query = "SELECT ServerID FROM Server";
$result = mysqli_query($con,$query); // You're selecting ServerID in Server
echo "The result are ". mysqli_fetch_array($result)['ServerID']; // It gives all ServerID from Server
答案 1 :(得分:1)
感谢我所做的每一个人,并不是那么难。 解决方案是函数,使用函数可以同时插入所有内容,这就是我想要的。函数可能如下所示:
Function getserverID($Servername)
{
//Check if the entery is already in the DB
//to provide double enteries
$result = mysql_query("select * from Server where Servername = lower('$Servername')");
$num_rows = mysql_num_rows($result);
if ($Servername =="avlrbrcl03"){
//echo ($num_rows);
}
//If it is not existing, create the entery
if($num_rows == 0){
$import="INSERT into Server(Servername) values(lower('$Servername'))";
mysql_query($import) or die(mysql_error());
$ID=mysql_insert_id();
//and if existing save it as a variable
}else{
$row = mysql_fetch_assoc($result);
$ID= $row["ServerID"];
}
return $ID;
}
如果您已经这样做了,则必须创建一个While循环来导入数据。 这看起来像这样:
while(($data = fgetcsv($handle, 1000, ";")) !== FALSE)
{
$Storagetyp = getstoragetyp($_FILES['filename']['name']);
$ServerID = getserverID($data[0]);
$Datum = getdatumID($data[2]);
//Check if there is already such a entry
$result = mysql_query ("select * from Daten where ServerID = '$ServerID' and Speicherplatz = '$data[1]' and DatumID = '$Datum'");
$num_rows = mysql_num_rows($result);
//If it doesn't exist, import it
if($num_rows == 0){
$import="INSERT into Daten(Speicherplatz, DatumID, ServerID, Storagetyp) values('$data[1]','$Datum','$ServerID','$Storagetyp')";
mysql_query($import) or die(mysql_error());
}
}
答案 2 :(得分:0)
确保表格具有相同的架构。
表1:
InputFilter[] filters = new InputFilter[1];
filters[0] = new InputFilter() {
@Override
public CharSequence filter(CharSequence source, int start, int end,
android.text.Spanned dest, int dstart, int dend) {
if (end > start) {
String destTxt = dest.toString();
String resultingTxt = destTxt.substring(0, dstart)
+ source.subSequence(start, end)
+ destTxt.substring(dend);
if (!resultingTxt
.matches("^\\d{1,3}(\\.(\\d{1,3}(\\.(\\d{1,3}(\\.(\\d{1,3})?)?)?)?)?)?")) {
return "";
} else {
String[] splits = resultingTxt.split("\\.");
for (int i = 0; i < splits.length; i++) {
if (Integer.valueOf(splits[i]) > 255) {
return "";
}
}
}
}
return null;
}
};
editTxxt.setFilters(filters);
表2:
CREATE TABLE IF NOT EXISTS `email` (
`email` varchar(255) NOT NULL,
`id` int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
您在PHP代码中的查询将是:
CREATE TABLE IF NOT EXISTS `email_table` (
`email` varchar(255) NOT NULL,
`id` int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
如有任何疑问,请告知我们:)
由于 阿米特
答案 3 :(得分:0)
使用以下代码执行此操作。
<?php
$con=mysql_connect("localhost","root","THUNI");
mysql_select_db("csv",$con);
$sql="INSERT INTO Daten (ServerID)
SELECT ServerID FROM Server";
mysql_query($sql);
?>