php - 在 Joomla 中的表之间移动行

标签 php mysql joomla joomla3.0

我一直在尝试创建一个 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 中完成这个吗?我更愿意(正如您可能已经在上面注意到的那样)在一次交易中完成,这样,如果出现错误,我的手上就不会乱七八糟。

最佳答案

$db->setQuery 允许将查询字符串作为参数而不是对象传递。请参阅“准备查询”:https://docs.joomla.org/J1.5:Accessing_the_database_using_JDatabase

我还建议将其中两个查询作为同一事务的一部分运行。

不幸的是,我没有方便的 joomla 安装来测试它,如果您发现它不起作用,请发表评论。

try
{
    $db->transactionStart();

    $query = $db->getQuery(true);

    $query1 = "INSERT INTO my_calsgovdocs.sent_copy
    SELECT *  FROM my_calsgovdocs.entered_copy
    WHERE `Status` LIKE '%Sent%'";

    $db->setQuery($query1);
    $result1 = $db->execute();

    $query2 = "DELETE FROM my_calsgovdocs.entered_copy
    WHERE `Status` LIKE '%Sent%'";

    $db->setQuery($query2);
    $result2 = $db->execute();

    $db->transactionCommit();
}
catch (Exception $e)
{
    $db->transactionRollback();
    JErrorPage::render($e);
}

关于php - 在 Joomla 中的表之间移动行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34571094/

相关文章:

php - 如何通过 PHP 和 mysql 正确转义字符串

javascript - 在从数据库获取信息的循环中通过 php 将变量传递到 javascript

php - 在另一个用户区域显示本地用户?

mysql - 从 .txt 文件导入 MySQL 数据库转储

javascript - Yii 使用 Ajax 上传文件 - 传递数据数组 (formData)

MYSQL插入错误信息

mysql - 安装 mysql 和 phpmyadmin

mysql - phpMyAdmin 4.0.5 导出错误错误 - 有人知道它是否正在解决吗?

Joomla Phoca 画廊问题

php - 通过两个独立的 joomla 站点进行 Joomla 身份验证