当前位置: 首页 > 面试题库 >

插入包含撇号(单引号)的数据时,MySQL错误?

简意
2023-03-14
问题内容

当我的插入查询包含引号(例如Kellog's)时,它无法插入记录。

错误MSG:

您的SQL语法有误;检查与您的MySQL服务器版本相对应的手册,以在行的’s’,’Corn Flakes 170g’,’$ 15.90’,’$
15.90’,’$ 14.10’,’-‘)’附近使用正确的语法1 MySQL更新错误:

首先's',应该是Kellogg's

有什么解决办法吗?


问题答案:

用反斜杠转义报价。喜欢'Kellogg\'s'

这是您的功能,使用mysql_real_escape_string

function insert($database, $table, $data_array) { 
    // Connect to MySQL server and select database 
    $mysql_connect = connect_to_database(); 
    mysql_select_db ($database, $mysql_connect);

    // Create column and data values for SQL command 
    foreach ($data_array as $key => $value) { 
        $tmp_col[] = $key; 
        $tmp_dat[] = "'".mysql_real_escape_string($value)."'"; // <-- escape against SQL injections
    } 
    $columns = join(',', $tmp_col); 
    $data = join(',', $tmp_dat);

    // Create and execute SQL command 
    $sql = 'INSERT INTO '.$table.'('.$columns.')VALUES('. $data.')'; 
    $result = mysql_query($sql, $mysql_connect);

    // Report SQL error, if one occured, otherwise return result 
    if(!$result) { 
        echo 'MySQL Update Error: '.mysql_error($mysql_connect); 
        $result = ''; 
    } else { 
        return $result; 
    } 
}


 类似资料:
  • 问题内容: 我正在通过PHP文本框获取数据,并使用普通的insert命令将其插入MySQL数据库。文本框在文本框旁为用户提供了有关特定登录ID的注释。问题在于,当用户输入撇号(’)例如句子“我们必须照顾好PC”时,会引发错误。 我知道为什么会这样,因为SQL会将其假定为该值的字符串结尾,但是我不知道如何对其进行转义。我希望在MYSQL中转义它。 如果我在MySQL中转义它,即使没有错误生成并且插入

  • 本文向大家介绍xml 撇号和引号,包括了xml 撇号和引号的使用技巧和注意事项,需要的朋友参考一下 示例 属性值可以用单引号或双引号出现。适当的字符必须转义。            

  • 问题内容: 这个问题已经在这里有了答案 : 如何防止PHP中进行SQL注入? (28个答案) 4年前关闭。 我有一个困惑的问题,我似乎无法理解… 我有两个SQL语句: 第一个将信息从表单输入数据库。 第二个从上面输入的数据库中获取数据,发送电子邮件,然后记录交易的详细信息 问题是似乎单引号仅在第二个条目上触发MySQL错误!第一个实例可以正常工作,但是第二个实例触发。 表单中的数据处理方式与表单中

  • 问题内容: 该 逃生() 函数,已被废弃,取而代之 encodeURIComponent方法 ,但 encodeURIComponent方法 不编码单引号/单引号字符。我需要使用AJAX格式来避免姓氏(例如“ O’Neill”)中的撇号。他们为什么要消除他们试图改善的东西的能力? 编辑: 因此,这是一个代码示例,可以更彻底地说明问题。因此,您可以看到姓“ O’Neill”包含一个撇号,当在url中

  • 我试图在Thymeleaf模板中动态创建Javascript,以便使用GoogleChart的Timeline包(注意:Google库的Spring版本中没有这个包)。 我有一个胸腺素片段的值。包含以下代码的html,然后将其包含在实际页面中: 在我的GantController类中,我有以下代码: 字符串参数=“['MegaCorp应用程序1',新日期(2018,7,2),新日期(2019,4,

  • 问题内容: 我正在尝试学习编写查询的最佳方法。我也了解保持一致的重要性。到现在为止,我在没有任何实际考虑的情况下随机使用单引号,双引号和反引号。 例: 另外,在上述例子中,考虑到,,等可以是变量。 这是什么标准?你是做什么? 我已经在这里阅读了大约20分钟的类似问题的答案,但是似乎没有确切的答案。 问题答案: 反引号用于表和列标识符,但是仅当标识符是MySQL保留关键字时,或者当标识符包含空格字符