查询在 phpmyadmin 中运行,但不在 codeigniter 模型中
Posted
技术标签:
【中文标题】查询在 phpmyadmin 中运行,但不在 codeigniter 模型中【英文标题】:Query running in phpmyadmin but not in codeigniter model 【发布时间】: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);
【问题讨论】:
【参考方案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 之类的编辑器中,它会显示特殊字符。希望这会有所帮助。
【讨论】:
以上是关于查询在 phpmyadmin 中运行,但不在 codeigniter 模型中的主要内容,如果未能解决你的问题,请参考以下文章
phpmyadmin 不在 xampp 或 wamp 服务器上运行?
PDO 查询不起作用,但生成的 SQL 在 PHPMyAdmin 上运行
mysql“日期之间”查询在 phpmyadmin 中有效,但 PDO 不返回任何内容
如何将我正在使用 webpack 构建的反应应用程序链接到 phpmyadmin 外部数据库并查询它而不在代码中显示我的数据库密码?