【问题标题】:PHP Mysqli SELECT, INSERT and UPDATE from different databases来自不同数据库的 PHP Mysqli SELECT、INSERT 和 UPDATE
【发布时间】:2014-10-18 11:03:01
【问题描述】:

我正在尝试从一个数据库中选择值。并将结果插入并更新到另一个中。这是需要每天运行以将一些数据从一个数据库复制到另一个数据库的 cronjob。我知道我缺少步骤/正确的语法,但我希望有人可以帮助我。

<?php

    $con_1=mysqli_connect("host","user","pw","db");
    // Check connection
    if (mysqli_connect_errno()) {
      echo "Failed to connect to MySQL: " . mysqli_connect_error();
    }
    $con_2=mysqli_connect("host","user","pw","db");
    // Check connection
    if (mysqli_connect_errno()) {
      echo "Failed to connect to MySQL: " . mysqli_connect_error();
    }

    $result = mysqli_query($con_1,"SELECT id, name FROM table GROUP BY 1,2");

    $mysqli->query($con_2, "INSERT INTO `table2`(`id`, `name`) VALUES ('".$result[1]."', ".$result[2].") 
    ON DUPLICATE KEY UPDATE name = ".$result[2]."");

    }

    mysqli_close($con_1);
    mysqli_close($con_2);
    ?>

【问题讨论】:

  • 看起来您正在执行 SQL 但没有检查它是否成功。在您获得$result 后添加此内容。检查 PHP 文档,看看 mysqli_query 在出错的情况下返回什么(我相信它会是 false)。
  • 使用 try catch 和事务dev.mysql.com/doc/refman/5.0/en/commit.html 更安全

标签: php mysql select mysqli insert


【解决方案1】:

mysqli_query返回一个查询对象,使用$result[1]没有意义,需要循环取行:

while($row = $result->fetch_assoc()) {
  // insert result in second database
}

对于其他访问方法,请查看documentation

【讨论】:

  • @JurienGroot 很难从评论中阅读,您可能应该问另一个问题并更好地解释您的问题。
  • 是的,出了点问题。对于那个很抱歉。我试图让 mysql_affected_rows 工作,但没有成功。不过,您对当前问题的回答效果很好。谢谢
猜你喜欢
  • 2016-07-18
  • 2013-02-02
  • 1970-01-01
  • 2015-10-29
  • 1970-01-01
  • 2012-09-15
  • 1970-01-01
  • 2016-08-26
  • 1970-01-01
相关资源
最近更新 更多