golang & python 连接 postgreSQL及postgre如何插入含有单引号的字符串

 golang

package main

import _ "github.com/lib/pq"

func main() {

	pgsqlInfo := fmt.Sprintf("host=%s port=%d user=%s "+"password=%s dbname=%s sslmode=disable", host, port, user, password, dbname)

	db, err := sql.Open("postgres", pgsqlInfo)

	//fmt.Println(reflect.TypeOf(db))  //*sql.DB

	err = db.Ping() //会将连接立马返回给连接池。

	query_sql := "select * from tablename"

	rows, err := db.Query(query_sql)

	defer rows.Close()

}

python

psycopg2安装:http://www.linuxyw.com/517.html

import psycopg2
def conn_pg():
    conn = psycopg2.connect(database='aaa',user='bbb',password='***',host='ccc',port='111')
    cur = conn.cursor()
    cur.execute("select * from pg_tablename where ip = 'ccc'")

    rows = cur.fetchall()
    print(rows)

    conn.commit()  //update delete insert 都得提交

    cur.close()
    conn.close()
    
if __name__ == '__main__':
    conn_pg()

当要insert  (str='  Got fatal errom master : 'The slave is connecting using TO_POSogs couires.'  ')  里面含有单引号的字符串时,解决方法是:把里面的单引号,替换成两个单引号即可。注:postgre 不识别双引号

'  Got fatal error 1236 from master : ''The slave is connecting using TO_POSogs couires.''  '

可以用str.replace("  ","  ''  ")

 

### PostgreSQL 插入数据时处理字符串中的单引号PostgreSQL插入单引号字符串时,可以通过两种主要方式来确保数据正确无误地存入数据库。 #### 方法一:使用两个连续的单引号表示一个实际的单引号字符 这是最常用的方法,在 SQL 语句中遇到需要转义的情况时,只需简单地将每一个单独的单引号替换为一对连续的单引号。例如: ```sql INSERT INTO table_name (column_name) VALUES ('O''Reilly'); ``` 这段代码成功地向 `table_name` 表的 `column_name` 列插入了一个名为 O'Reilly 的条目[^1]。 #### 方法二:启用标准兼容模式并利用反斜杠进行转义 另一种方法是在会话级别设置 `standard_conforming_strings=off` 和 `escape_string_warning=off` 参数,之后就可以采用 C 风格的转义序列——即用反斜杠 `\` 来代替第二个单引号。不过这种方法并不推荐广泛使用,因为它可能引起混淆,并且默认情况下 PostgreSQL 是按照 SQL 标准工作的,也就是开启 `standard_conforming_strings` 属性[^2]。 对于编程语言如 PythonGoLang 编写的程序来说,通常建议开发者遵循第一种做法,即手动或借助库函数自动完成对输入字符串内的单引号做双重化处理后再执行 INSERT 命令[^4]。 ```python import psycopg2 conn = psycopg2.connect(dbname="testdb", user="postgres", password="secret") cur = conn.cursor() unsafe_string = "It's a beautiful day." safe_string = unsafe_string.replace("'", "''") query = f"INSERT INTO messages (content) VALUES ('{safe_string}')" cur.execute(query) conn.commit() cur.close() conn.close() ``` 上述例子展示了如何安全地准备待插入PostgreSQL 数据库中的字符串内容,从而避免由于未适当处理特殊字符而导致语法错误的发生。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值