我试图创建一个脚本,将数据从一个数据库中的表更新到另一个数据库中的表。我是自制的,我的能力非常有限。我确信有这样做的更好的方式,但它可能是我无法接触的。无论如何,这是我试图去做的。从数据库中的一个表更新数据到不同数据库中的另一个表不工作
第一个文档选择我想从中获取信息的表中的数据。它包含一个链接,允许我选择要复制的行。这个链接基本上创建一个表单,其中包含我想要复制到第二个数据库中的信息。这个想法是,当我按下提交时,它将信息发送到第二个数据库,并更新字段。
我遇到的问题是,即使它说它已成功执行查询,但它不会更新第二个数据库。
任何人都可以看到为什么这不工作?
这是我使用的脚本:
TEST-Display.php的
<?php
$host="localhost"; // Host name
$username="username"; // Mysql username
$password="password"; // Mysql password
$db_name="db1"; // Database name
$tbl_name="table1"; // Table name
// Connect to server and select database.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
$sql="SELECT * FROM $tbl_name";
$result=mysql_query($sql);
?>
<table width="400" border="0" cellspacing="1" cellpadding="0">
<tr>
<td>
<table width="400" border="1" cellspacing="0" cellpadding="3">
<tr>
<td colspan="4"><strong>List data from mysql </strong> </td>
</tr>
<tr>
<td align="center"><strong>Uid</strong></td>
<td align="center"><strong>User Name</strong></td>
<td align="center"><strong>Password</strong></td>
<td align="center"><strong>Email</strong></td>
<td align="center"><strong>Update</strong></td>
</tr>
<?php
while($rows=mysql_fetch_array($result)){
?>
<tr>
<td><? echo $rows['uid']; ?></td>
<td><? echo $rows['user']; ?></td>
<td><? echo $rows['password']; ?></td>
<td><? echo $rows['email']; ?></td>
// link to update.php and send value of id
<td align="center"><a href="http://soundsurgery.co.uk/main/TEST5/TEST-EDIT.php?uid=<? echo $rows['uid']; ?>">update</a></td>
</tr>
<?php
}
?>
</table>
</td>
</tr>
</table>
<?php
mysql_close();
?>
TEST-EDIT.php
<?php
$host="localhost"; // Host name
$username="username"; // Mysql username
$password="password"; // Mysql password
$db_name="db1"; // Database name
$tbl_name="table1"; // Table name
// Connect to server and select database.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
// get value of id that sent from address bar
$uid=$_GET['uid'];
// Retrieve data from database
$sql="SELECT * FROM $tbl_name WHERE uid='$uid'";
$result=mysql_query($sql);
$rows=mysql_fetch_array($result);
?>
<table width="400" border="0" cellspacing="1" cellpadding="0">
<tr>
<form name="form1" method="post" action="TEST-EXEC.php">
<td>
<table width="100%" border="0" cellspacing="1" cellpadding="0">
<tr>
<td> </td>
<td colspan="3"><strong>Update data in mysql</strong> </td>
</tr>
<tr>
<td align="center"> </td>
<td align="center"> </td>
<td align="center"> </td>
<td align="center"> </td>
</tr>
<tr>
<td align="center"> </td>
<td align="center"><strong>Uid</strong></td>
<td align="center"><strong>User Name</strong></td>
<td align="center"><strong>Password</strong></td>
<td align="center"><strong>Email</strong></td>
</tr>
<tr>
<td> </td>
<td align="center">
<input name="uid" type="text" id="uid" value="<? echo $rows['uid']; ?>">
</td>
<td align="center">
<input name="user" type="text" id="user" value="<? echo $rows['user']; ?>">
</td>
<td align="center">
<input name="password" type="text" id="password" value="<? echo $rows['password']; ?>" size="15">
</td>
<td>
<input name="email" type="text" id="email" value="<? echo $rows['email']; ?>" size="15">
</td>
</tr>
<tr>
<td> </td>
<td>
<input name="uid" type="hidden" id="uid" value="<? echo $rows['uid']; ?>">
</td>
<td align="center">
<input type="submit" name="Submit" value="Submit">
</td>
<td> </td>
</tr>
</table>
</td>
</form>
</tr>
</table>
<?php
// close connection
mysql_close();
?>
TEST-EXEC.php
<?php
$host="localhost"; // Host name
$username="username"; // Mysql username
$password="password"; // Mysql password
$db_name="db2"; // Database name
$tbl_name="table2"; // Table name
// Connect to server and select database.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
// update data in mysql database
$sql="UPDATE $tbl_name SET uname='$user', password='$password', email='$email' WHERE uid='$uid'";
$result=mysql_query($sql);
// if successfully updated.
if($result){
echo "Successful";
echo "<BR>";
echo "<a href='TEST-DISPLAY2.php'>View result</a>";
}
else {
echo "ERROR";
}
?><!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>Untitled Document</title>
</head>
<body>
</body>
</html>
TEST-DISPLAY2.php是一样的s TEST-DISPLAY.php,区别在于它显示第二个表的结果。
请不要在新的应用程序中使用'mysql_query'。这是一个从PHP中删除的不推荐使用的界面,如果您使用不当,它会很危险。你在这里有一些**严重的[SQL注入漏洞](http://bobby-tables.com/),因为你没有[正确地转义你的值](http://bobby-tables.com/ PHP)。像[PDO这样的现代替代品并不难学](http://net.tutsplus.com/tutorials/php/why-you-should-be-using-phps-pdo-for-database-access/)并且将确保您的数据库代码在未来版本的PHP中可用。 – tadman