php – 在Joomla中移动表之间的行
发布时间:2020-12-13 17:56:48 所属栏目:PHP教程 来源:网络整理
导读:我一直在尝试创建一个 PHP脚本,它会定期将“已完成”的行从我的Joomla站点上的表移动到另一个表.我写的查询在PHPMyAdmin中运行得很好: INSERT INTO my_calsgovdocs.sent_copySELECT * FROM my_calsgovdocs.entered_copyWHERE `Status` LIKE '%Sent%';DELETE
我一直在尝试创建一个
PHP脚本,它会定期将“已完成”的行从我的Joomla站点上的表移动到另一个表.我写的查询在PHPMyAdmin中运行得很好:
INSERT INTO my_calsgovdocs.sent_copy SELECT * FROM my_calsgovdocs.entered_copy WHERE `Status` LIKE '%Sent%'; DELETE FROM my_calsgovdocs.entered_copy WHERE `Status` LIKE '%Sent%'; 我试图将它翻译成一些可以在Joomla中运行的PHP代码,并且我已经粘贴了下面的代码.它返回一个“意外的T_STRING”错误,该错误指向下面的行 – > insert into,现在我发现该脚本不起作用,因为“insert into”不是有效的方法名称!到目前为止,我找不到在Joomla中使用的等效方法.这是我对代码的尝试: try { $db->transactionStart(); $query = $db->getQuery(true); $query ->insert into($db->quoteName('sent_copy')) ->select('*') ->from($db->quoteName('entered_copy')) ->where($db->quoteName('Status') . ' LIKE ' . $db->quote('%Sent%') . ';') ->delete from($db->quoteName('entered_copy')) ->where($db->quoteName('Status') . ' LIKE ' . $db->quote('%Sent%')); $db->setQuery($query); $result = $db->execute(); $db->transactionCommit(); } catch (Exception $e) { $db->transactionRollback(); JErrorPage::render($e); } 任何人都知道如何在Joomla中完成这个任务?我希望(正如你上面可能已经注意到的)在一次交易中做到这一点,这样,如果出现错误,我手上就不会弄得一团糟.
你可以尝试在普通的旧PHP中做到这一点?就像是
$conf = JFactory::getConfig(); // load your config try{ $link = mysqli_connect($conf->get('host'),$conf->get('user'),$conf->get('password'),$conf->get('db')); mysqli_begin_transaction($link,MYSQLI_TRANS_START_READ_WRITE); mysqli_query($link,"INSERT INTO my_calsgovdocs.sent_copy SELECT * FROM my_calsgovdocs.entered_copy WHERE `Status` LIKE '%Sent%'"); mysqli_query($link,"DELETE FROM my_calsgovdocs.entered_copy WHERE `Status` LIKE '%Sent%'"); mysqli_commit($link); } catch (Exception $e) { mysqli_rollback($link); JErrorPage::render($e); } mysqli_close($link); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |