通过shell读取mysql数据——20120417

本文介绍了一种使用Shell脚本访问MySQL数据库的方法,并提供了一个具体的示例代码,展示了如何执行SQL查询并获取结果。

      修改脚本时,需要从mysql中读取一些数据信息,此时要用到shell去访问数据库。
      通过查找得知,mysql可以直接执行sql的查询语句。通过对一些sql语句的简单封装,数据便可以得到了。
      代码如下:
 

   #!/bin/bash
    MYSQL=mysql	 	#选用mysql程序
    USER=hik   	 	#设定用户名
    PASSWORD="111111" 	#设定数据库的用户密码
    DB=test 		#选定需要的数据库
   
    COMMAND="select auth_user_query_id, auth_user_secretkey from auth_users where auth_user_name=\"admin\" " 
    declare count=`$MYSQL -u${USER} -p${PASSWORD} -D ${DB} -e "${COMMAND}" --skip-column-name`
    for list in $count                                                                                                      
    do
    echo " the item is $list"
   done 	


在C# 中读取 MySQL 数据库中 `MEDIUMTEXT` 类型的数据,可以借助于 MySql.Data 或者其他 ORM 框架如 Dapper、Entity Framework Core 等工具。这里我们将展示一种基于 MySqlCommandMySqlDataReader 的原生 ADO.NET 方式。 以下是步骤说明: ### 步骤一:安装必要的NuGet包 首先你需要添加对MySQL数据库的支持,通过 Nuget Package Manager 安装官方提供的连接器——MySql.Data。 ```shell Install-Package MySql.Data ``` ### 步骤二:编写代码连接并查询数据表 接下来设置你的数据库连接字符串,并创建一个新的 MySqlConnection 对象用于建立到服务器的会话;然后使用 MySqlCommand 来构建 SQL 查询语句去获取包含 MEDIUMTEXT 字段的结果集。 示例代码片段: ```csharp using System; using MySql.Data.MySqlClient; class Program { static void Main(string[] args) { string connectionString = "server=localhost;uid=root;pwd=your_password;database=testdb;"; using (var conn = new MySqlConnection(connectionString)) { try { Console.WriteLine("Connecting to MySQL..."); conn.Open(); // 假设有一个名为 'articles' 表,其中有一列 'content' 是 mediumtext 类型. var cmdText = @"SELECT id, title, content FROM articles WHERE id=@id"; using(var command = new MySqlCommand(cmdText, conn)){ command.Parameters.AddWithValue("@id", 1); using(MySqlDataReader reader = command.ExecuteReader()){ if(reader.Read()) { int articleId = reader.GetInt32(0); // 获取第一列(int) string title = reader.GetString(1); // 获取第二列(string) // 如果是null则返回DBNull.Value object objContent = reader.GetValue(2); // 判断是否为非空值再转换成string string content = ""; if(DBNull.Value != objContent){ content = Convert.ToString(objContent); } Console.WriteLine($"ID={articleId}, Title='{title}', Content Length:{content.Length}"); } } } } catch (Exception ex) { Console.WriteLine(ex.Message); } finally{ if(conn.State == ConnectionState.Open) conn.Close(); } } } } ``` 这段程序尝试从名为 `articles` 的表格里选取记录,假设它有三个字段分别是 `id`, `title` 及 `content`. 其中`content`即为我们所说的`MEDIUMTEXT`. > **提示**: > >- 当处理大的文本内容时考虑性能影响; >- 要注意防止SQL注入攻击,在此例子中我们用了参数化查询; >- 根据实际需要调整异常捕获逻辑。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值