【发布时间】:2012-07-28 09:20:45
【问题描述】:
我在mysqli_multi_query 的帮助下触发了以下查询。哪个执行正确但没有返回任何值。它返回空白。 mysqli_multi_query 有什么问题,或者有什么替代方法可以在 codeigniter 中触发多个查询。
$sql="LOCK TABLE xp_subunit WRITE; ";
$sql .= "SELECT @myLeft := ".$_GET['lft'].", @myRight := ".$_GET['rgt'].", @myWidth := ".$_GET['lft']." - lft + 1
FROM xp_subunit
WHERE id =".$_GET['id']."; ";
$sql .= "DELETE FROM xp_subunit WHERE lft BETWEEN @myLeft AND @myRight; ";
$sql .= "UPDATE xp_subunit SET rgt = rgt - @myWidth WHERE rgt > @myRight; ";
$sql .= "UPDATE xp_subunit SET lft = lft - @myWidth WHERE lft > @myRight; ";
$sql.="UNLOCK TABLES;";
//echo $sql;
$query = $this->db->mysqli_multi_query($sql);
【问题讨论】:
-
请注意:存在潜在的sql注入漏洞(传入$_GET['id']等,未转义)
-
请张贴您阅读价值观的方式。
-
查看PHP manual 示例,这里有一个如何从多查询中检索结果的示例。
-
Codeigniter 中有
mysqli_multi_query吗?不需要使用原生的PHP函数吗? -
@Yan mysqli 可以作为 CodeIgniter 中的数据库驱动。
标签: php mysql codeigniter mysqli