[英]Is it possible to run multiple update queries in one using Joomla?
我想使用JOOMLA 2.5一次运行许多SQL更新查询。 在我的代码下面:
require_once '../includes/framework.php';
$query = "UPDATE #__mytable SET myfield='value' where id=1; UPDATE #__mytable SET
myfield='value' where id=2; UPDATE #__mytable SET myfield='value' where id=3;";
$db = JFactory::getDbo();
$db->setQuery($query);
$db->query();
但它显示了语法错误。 我试图直接在MYSQL中测试它的工作原理。
PHP默认情况下不允许多个查询。 你可以通过向mysql_connect添加一个参数来强制它这样做,但我不推荐它(它为SQL注入打开了巨大的安全漏洞)。
我不知道JFactory如何处理这个,但如果它不同我会感到惊讶。
关于它的更多信息: http : //de3.php.net/manual/en/function.mysql-query.php#91669
必须使用JDatabaseDriver::splitSql()
将多个查询的字符串拆分为单个查询的数组,并一次运行一次。
这是内部扩展安装程序的工作方式。
不要担心评论,他们将被剥夺。
$sql = "UPDATE #__mytable SET myfield='value' where id=1; UPDATE #__mytable SET myfield='value' where id=2; UPDATE #__mytable SET myfield='value' where id=3;";
$db = JFactory::getDbo();
$queries = JDatabaseDriver::splitSql($sql);
foreach ($queries as $query)
{
try
{
$db->setQuery($query)->execute();
}
catch (JDatabaseExceptionExecuting $e)
{
...
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.