【问题标题】:Query running in phpmyadmin but not in codeigniter model查询在 phpmyadmin 中运行,但不在 codeigniter 模型中
【发布时间】:2012-08-09 13:13:46
【问题描述】:

我正在运行以下查询:

SELECT @newNo := MAX( category_code ) FROM category_master;
INSERT INTO category_master VALUES (@newNo +1,  'Test')

查询在 phpmyadmin 中运行完美,但在使用 codeigniter 运行时显示数据库错误:

您的 SQL 语法有错误;检查手册 对应于您的 MySQL 服务器版本,以便使用正确的语法 在第 2 行的“INSERT INTO category_master VALUES(@newNo+1, 'Test')”附近

可能是什么原因? 在 codeigniter 模型中,我使用以下代码:

$query = 'SELECT @newNo := MAX(category_code) FROM category_master;
                    INSERT INTO category_master VALUES(@newNo+1, 
                    \''.$category_name.'\')';
$result = $this -> db -> query($query);

【问题讨论】:

    标签: php mysql codeigniter


    【解决方案1】:

    您不能同时运行两个查询。将它们分开:

    $query = 'SELECT @newNo := MAX(category_code) FROM category_master';
    $result = $this->db->query($query);
    
    $query = 'INSERT INTO category_master VALUES(@newNo+1, \''.$category_name.'\')';
    $result = $this->db->query($query);
    

    编辑: 在您的第二个查询中,建议使用查询绑定:

    $query = 'INSERT INTO category_master VALUES(@newNo+1, ?)';
    $result = $this->db->query($query, $category_name);
    

    【讨论】:

      【解决方案2】:

      确保查询不包含任何特殊字符。浏览器将转换特殊字符,因此查询在 phpmyadmin 中运行。 要知道特殊字符,请回显查询并将其复制并粘贴到 Dreamweaver 之类的编辑器中,它会显示特殊字符。希望这会有所帮助。

      【讨论】:

        猜你喜欢
        • 2018-03-03
        • 1970-01-01
        • 2012-04-28
        • 2018-07-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-09-06
        • 2012-01-06
        相关资源
        最近更新 更多