Php 将随机行从一个MySQL表复制到另一个具有不同模式的MySQL表
我有一个名为Php 将随机行从一个MySQL表复制到另一个具有不同模式的MySQL表,php,mysql,sql,database,cron,Php,Mysql,Sql,Database,Cron,我有一个名为locations的数据库表,它有许多位置遵循此模式:lid(PID)、name、totalVotes、timeSince,我想从该表中随机选择4行,并将它们复制到另一个模式为sid(PID)、lid(Foreign)、vots的表中。我想每天设置一个cron作业来完成这项工作,所以我首先编写一个PHP脚本,然后在以后使用cron作业进行设置 我在让脚本运行时遇到问题,因为所选数据库中没有反映任何更改。以下是我到目前为止在copy.php中的尝试: <?php // cre
locations
的数据库表,它有许多位置遵循此模式:lid(PID)、name、totalVotes、timeSince
,我想从该表中随机选择4行,并将它们复制到另一个模式为sid(PID)、lid(Foreign)、vots
的表中。我想每天设置一个cron作业来完成这项工作,所以我首先编写一个PHP脚本,然后在以后使用cron作业进行设置
我在让脚本运行时遇到问题,因为所选数据库中没有反映任何更改。以下是我到目前为止在copy.php
中的尝试:
<?php
// create connection
mysql_connect("localhost","root",NULL);
@mysql_select_db("Locations") or die("Unable to select db");
// this SQL statement moves 4 random rows from locations to selected table
$sql = "INSERT INTO selected (lid) SELECT lid FROM locations WHERE lid IN (SELECT lid FROM locations ORDER BY RAND() LIMIT 4);";
mysql_query($sql);
mysql_close();
echo "all good";
?>
当我刷新我的localhost/copy.php
时,我得到了“一切正常”的消息,但在我选择的表中再次没有任何更改。你能试试吗?
第一个选择是不需要的,你认为你有一个坏的在查询的结尾
INSERT INTO selected (lid) (SELECT lid FROM locations ORDER BY RAND() LIMIT 4)
首先,你是想移动还是复制?我只在您的示例中看到复制。@Piskvor copy,我的道歉使用mysql\u impacted\u rows()
获取真实性并检查错误。你在这里得到了一个假阳性,这意味着你有错误,但你没有检查它们。“而且你认为你在查询结束时有一个坏的;
,-限制4);“;
是有效的语法。