1. 常用模块
# 连接数据库
connect()函数创建一个新的数据库连接对话并返回一个新的连接实例对象
PG_CONF_123 = { 'user':'emma', 'port':123, 'host':'192.168.1.123', 'password':'emma', 'database':'dbname'} conn = psycopg2.connect(**PG_CONF_123)
# 打开一个操作整个数据库的光标
连接对象可以创建光标用来执行SQL语句
cur = conn.cursor()
# 执行一个创建表的SQL语句
光标可以使用execute()和executemany()函数
cur.execute("CREATE TABLE test (id serial PRIMARY KEY, num integer, data varchar);")
# 传递参数给插入语句
cur.execute("INSERT INTO test (num, data) VALUES (%s, %s)",(100, "abc'def"))
# 执行查询语句并将获取到的数据作为python对象
cur.execute("SELECT * FROM test;") cur.fetchone() (1, 100, "abc'def")
# 提交修改
如果只使用查询语句不用commit方法,insert/update/delete等操作需要调用commit()。rollback()函数用于会滚到上次调用commit()方法之后。
conn.commit()
# 关闭数据库连接
cur.close() conn.close()
2. 防范SQL注入漏洞
典型的SQL注入漏洞形式:
SQL = "select * from userinfo where id = '%s'" % (id) SQL = "select * from userinfo where id = '{}'".format(id)
如果有人恶意攻击,在传入参数的代码中加入恶意代码,如:
request.id = '123; drop tabel userid;'
会造成严重风险,为防止此问题,应该通过第二位变量传入参数的方法:%s(无论变量是什么数据类型,都使用%s)
SQL = "INSERT INTO authors (name) VALUES (%s);" # Note: no quotes data = ("O'Reilly", ) cur.execute(SQL, data) # Note: no % operator
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。
用Python来编写网站,必须要能够通过python操作数据库,所谓操作数据库,就是通过python实现对数据的连接,以及对记录、字段的各种操作。上一讲提到的那种操作方式,是看官直接通过交互模式来操作数据库。 安装python-MySQLdb 要想通过python来操作数据库,还需要在已经安装了mysql的基础上安装一个称之为mysqldb的库,它是一个接口程序,python通过它对mysql数据
本文向大家介绍Jmeter连接Mysql数据库实现过程详解,包括了Jmeter连接Mysql数据库实现过程详解的使用技巧和注意事项,需要的朋友参考一下 昨天把Mysql装好了,这个躺在草稿中很久的文章也可以出炉了。 首先需要准备个Mysql jdbc驱动包,尽量保证其版本和你的数据库版本一致,至少不低于数据库版本,否则可能有问题。去官网扒一个下来吧:https://dev.mysql.com/do
本文向大家介绍JDBC连接MySQL数据库批量插入数据过程详解,包括了JDBC连接MySQL数据库批量插入数据过程详解的使用技巧和注意事项,需要的朋友参考一下 这篇文章主要介绍了JDBC连接MySQL数据库批量插入数据过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.读取本地json数据 2.jdbc理解数据库 3.批量插入 maven
我有一个IP地址每次我收到连接失败的消息时,我都尝试了很多连接到该服务器的方法。出于安全原因,我隐藏了用户名和密码。 代码: 我有例外 组织。postgresql。util。PSQLException:连接尝试失败。在org。postgresql。果心v3。连接工厂impl。org上的openConnectionImpl(ConnectionFactoryImpl.java:292)。postgr
我很难用pgsql设置laravel 5.3(在wamp/windows上运行)。当我尝试使用“php artisan migrate”迁移表时,出现了一个错误“PDO异常-找不到驱动程序” 我安装了postgres 9.6。 我启用了postgresql的php扩展: 所以我被卡住了,无法在laravel进行迁移工作。我的. env: 以下是laravel错误堆栈: 另外,phpinfo()中的