7

我想在 MySQL 中获取一个数组。有人可以告诉我如何使用 MySQLdb 来使用 Python 吗?

例如,这就是我想在 Python 中做的事情:

<?php

  require_once('Config.php'); 

  $q = mysql_query("SELECT * FROM users WHERE firstname = 'namehere'");
  $data = mysql_fetch_array($q);
  echo $data['lastname'];

?>

谢谢。

4

5 回答 5

13

在python中你有dictionary=True,我在python3中测试过。这将返回与 php 中的关联数组非常相似的目录。例如。

import mysql.connector
cnx = mysql.connector.connect(user='root', password='',host='127.0.0.1',database='test1')
cursor = cnx.cursor(dictionary=True)
sql= ("SELECT * FROM `users` WHERE id>0")
cursor.execute(sql)
results = cursor.fetchall()
print(results)
于 2018-07-16T15:11:27.887 回答
6

您可以使用它(dictionary=True):

import mysql.connector

db = mysql.connector.connect(user='root', password='',host='127.0.0.1', database='test1')

cursor = db.cursor(dictionary=True)
cursor.execute("SELECT * FROM table")

for row in cursor:
    print(row['column'])
于 2019-02-07T22:31:14.980 回答
5
  1. 安装 MySQLdb(Python 的 MySQL 驱动程序)。类型pip install mysql-python
  2. 阅读Python DB API,这是在 Python 中访问数据库的标准方法。

然后,试试这个:

>>> import MySQLdb
>>> connection = MySQLdb.connect(database='test')
>>> cursor = connection.cursor()
>>> cursor.execute('SELECT * FROM users WHERE firstname = %s',('somename',))
>>> results = cursor.fetchall()
>>> for i in results:
       print i
于 2012-07-19T16:54:28.200 回答
1

我会使用SQLAlchemy。像这样的东西可以解决问题:

engine = create_engine('mysql://username:password@host:port/database')
连接 = engine.connect()
result = connection.execute("从用户中选择用户名")
结果中的行:
    打印“用户名:”,行['用户名']
连接.close()

于 2012-07-19T16:58:38.453 回答
1

尝试:

import MySQLdb
connection = MySQLdb.connect(host="localhost",  # your host
                     user="root",  # username
                     passwd="password",  # password
                     db="frateData")  # name of the database)
cursor = connection.cursor(MySQLdb.cursors.DictCursor)
cursor.execute('SELECT * FROM users WHERE firstname = %s',['namehere'])
data = cursor.fetchall()
print data['lastname']

请注意,通过传递以下参数来启动游标:“MySQLdb.cursors.DictCursor”会返回一个列表而不是数组,因此您可以使用它们的键名引用数据,在您的情况下是姓氏。

于 2018-02-09T15:35:33.693 回答