【问题标题】:mysqli_multi_query not returning any valuemysqli_multi_query 不返回任何值
【发布时间】: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


【解决方案1】:

请尝试以下示例。

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query  = "SELECT CURRENT_USER();";
$query .= "SELECT Name FROM City ORDER BY ID LIMIT 20, 5";

/* execute multi query */
$mysqli->multi_query($query);
?>

我认为这可能会帮助您获得解决方案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-05-20
    • 2016-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-04
    • 1970-01-01
    相关资源
    最近更新 更多