【问题标题】:double quote inside mysql script not workingmysql脚本中的双引号不起作用
【发布时间】:2019-10-09 09:49:30
【问题描述】:

我想为我的 FreePBX 创建一个 cron 脚本。如果我从终端连接到 mysql,它会这样工作:

mysql -u user -ppasswd table
UPDATE kvstore SET val='$HOST' where `key`="externip";

但在这样的脚本中:

mysql -u user -ppasswd table  -e "UPDATE kvstore SET val='$HOST' where `key`="externip";";

它返回我:

 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '=externip' at line 1

例如我有这个脚本没有问题,因为脚本内没有双引号:

mysql -u user -ppasswd table -e "UPDATE sipsettings SET data = '$HOST' WHERE sipsettings.keyword = 'externip_val' AND sipsettings.seq = 40 AND sipsettings.type = 0;";

我尝试了所有可以将 \" 作为引号的方法,但没有找到解决方案。

如果有人可以帮助我,谢谢您的回答!

【问题讨论】:

    标签: mysql bash double-quotes cron-task quote


    【解决方案1】:

    嵌入的双引号确实与周围的双引号发生冲突。在 SQL 中,无论如何使用单引号来定义字符串通常是一个好习惯,所以我建议:

    mysql -u user -ppasswd table  -e "UPDATE kvstore SET val='$HOST' where `key`='externip';";
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-10-17
      • 2013-05-30
      • 2021-05-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多