【问题标题】:How to execute SQL command with parameters in bash script如何在bash脚本中执行带参数的SQL命令
【发布时间】:2014-03-17 16:11:46
【问题描述】:

我想制作一个 bash 脚本,它将用户添加到我在 MySQL 数据库中的自定义表中。我将用户名作为脚本参数存储在变量 $USERNAME 中,我需要在 MySQL 服务器中执行此查询:

INSERT INTO `user` VALUES ('$USERNAME', password)

我知道如何执行 sql 文件,但是当我在变量中有用户名时,这对我没有帮助。我能想到的唯一方法是使用 GET 值执行 php 文件并在 php.ini 中执行 sql 命令。而且我不确定使用 php 是否会像我想的那样工作。

有没有更好的办法?

谢谢

编辑: 在您提供有用的答案之后,我使用了这个有效的命令:

mysql -ppassword --default-character-set=utf8 -e "INSERT INTO table VALUES (\"$USERNAME@\",\"password\")" database

【问题讨论】:

  • 你熟悉mysql -e "command"吗?在你的情况下,mysql -e "INSERT INTO user VALUES ('$USERNAME', password)
  • 我不熟悉 mysql 命令,但现在我熟悉了。感谢提示

标签: mysql bash


【解决方案1】:

您可以尝试使用heredoc:

#!/bin/bash

USERNAME="example"

mysql <<MYSQL
INSERT INTO user VALUES ('$USERNAME', password);
MYSQL

【讨论】:

  • 我以前不知道heredoc。我查了一下,它看起来不错,但我会在一些更困难的查询中使用它。
【解决方案2】:

命令是:

mysql -pyourpasswordwithoutspaces -e "Your insert query goes here with semicolon;"

我不确定分号是否必要,但提供它们总是好的。

【讨论】:

    猜你喜欢
    • 2023-01-18
    • 2014-06-28
    • 2021-02-12
    • 2020-12-08
    • 1970-01-01
    • 2021-05-02
    • 2011-10-16
    • 1970-01-01
    • 2016-07-25
    相关资源
    最近更新 更多