【问题标题】:CodeIgniter - escape SQL statementCodeIgniter - 转义 SQL 语句
【发布时间】:2012-03-05 20:20:32
【问题描述】:

我正在以编程方式生成一个 SQL 语句,然后我需要执行该语句,但是它失败了,我认为是因为没有正确转义。

SQL 似乎是正确生成的,因为我可以从浏览器中剪切和粘贴它,并且它可以从 CMD 行和 PHPMyAdmin 正确执行。示例:

CREATE TABLE IF NOT EXISTS `1_e6766037c49ccf8cc3f8437c123d6e88` 
(`intId` int(11) NOT NULL auto_increment,
`twitter_retweet_count` TEXT NULL ,......

然后我尝试使用 CI 执行它:

$query = $this->db->query($sql);

但是它失败了:

You have an error in your SQL syntax; check the manual that corresponds to your 
MySQL server version for the right syntax to use near '
`twitter_retweet_count` TEXT NULL ,.......

对我可能出错的地方有什么想法吗?

非常感谢,本。

【问题讨论】:

    标签: mysql sql codeigniter escaping


    【解决方案1】:

    您是否尝试过删除列/表名称周围的 ` 字符?

    CREATE TABLE IF NOT EXISTS 1_e6766037c49ccf8cc3f8437c123d6e88
    (intId int(11) NOT NULL auto_increment,
    twitter_retweet_count TEXT NULL ,......
    

    【讨论】:

    • 我刚刚用 codeigniter 2.1 测试了代码,似乎没有出错。 (我用的是带`的sql行,没看出问题)你用的是哪个版本的codeigniter?
    • @adidasadida- 感谢您的努力。您的测试使我进一步查看了生成代码,我意识到我在那里有一个 HTML 字符用于显示目的(新行)。这就是失败的原因。非常感谢,本。
    【解决方案2】:

    @adidasadida- 感谢您的努力。您的测试让我进一步查看了生成代码,我意识到我在那里有一个 HTML 字符用于显示目的(新行)。这就是失败的原因。非常感谢,本。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-21
      • 1970-01-01
      • 2021-10-30
      • 2016-03-29
      • 1970-01-01
      • 2023-03-28
      • 1970-01-01
      • 2014-05-26
      相关资源
      最近更新 更多