【发布时间】:2014-03-23 17:01:21
【问题描述】:
我必须从数据库中的表中选择数据并将它们插入到不同数据库中的另一个表中。下面的代码返回$select_query OK,但$insert_query 不行。能否请您更正代码并让我知道您的回复?
$host1 = "localhost";
$user1 = "jackpot";
$pass1 = "jackpot";
$db1 = "pinkapple";
$host2 = "localhost";
$user2 = "jackpot";
$pass2 = "jackpot";
$db2 = "blueberry";
$mysql_connection1 = mysql_connect($host1, $user1, $pass1);
mysql_select_db($db1, $mysql_connection1) or die(mysql_error());
$select_query = mysql_query("SELECT field1, field2, field3 FROM tree WHERE date_entered > '2014-01-01 16:22:00'", $mysql_connection1);
$number = mysql_num_rows($select_query);
if ($select_query) {
echo "Select Query is OK <br>";
echo $number ."<br>";
} else {
echo "Select Query is not OK <br>";
}
$mysql_connection2 = mysql_connect($host2, $user2, $pass2, true);
mysql_select_db($db2, $mysql_connection2) or die(mysql_error());
while ($row = mysql_fetch_array($select_query)) {
$field1 = $row['field1'];
$field2 = $row['field2'];
$field3 = $row['field3'];
$insert_query = mysql_query("INSERT INTO jungle (desk1, chair1, table1) VALUES ('$field1', '$field2', '$field3')", $mysql_connection2);
if ($insert_query) {
echo "Insert Query is OK <br>";
} else {
echo "Insert Query is not OK <br>";
}
}
mysql_close($mysql_connection1);
mysql_close($mysql_connection2);
您可以在下面看到表格的示意图。
【问题讨论】:
-
您忘记了
INSERT语句中的VALUES关键字。 -
这是因为您没有抓取原始查询值,如果您不建立值,使用关键字值不会改变任何内容
-
mysqli_num_rows($select_query)上的输出是什么? -
@Apiah 所以你的 SELECT 查询首先有问题。请检查表名、列名和 WHERE 子句条件。可以肯定的是,将查询存储在一个变量中,比如
$query并回显它。将回显的查询粘贴到您的 mysql 管理 UI 中,例如 PHPMyAdmin,然后查看您正在做的实际错误。 -
@Apiah 是的,与我之前的评论中所说的相同。通过回显查询来查看您的 INSERT 语句中是否有问题。不是
$select_query。原始查询echo "INSERT INTO jungle (desk1, chair1, table1) VALUES ('$field1', '$field2', '$field3')";与 Chitowns24 的答案相同。