将fork的编号与ip信息存储在了MySQL中,数据库为forklift,数据表名为fork_info,存储格式为id+num+ip,那么如何用python去查询这些信息呢?
根据提供的MySQL表结构,想从名为fork_info
的数据库表中检索信息,该表有三个列:Auto_ID
(整数),fork_num
(整数)和fork_ip
(文本类型)。
为了查询MySQL数据库并获取所需的信息,可以使用以下Python代码:
import pymysql
def connect_database(host, port, user, password, db_name):
conn = pymysql.connect(
host=host,
port=port,
user=user,
password=password,
db=db_name
)
return conn
def fetch_fork_info(conn):
try:
cursor = conn.cursor()
query = "SELECT Auto_ID, fork_num, fork_ip FROM fork_info WHERE fork_ip != '-1' LIMIT 1;"
cursor.execute(query)
result = cursor.fetchone()
cursor.close()
return result
except Exception as e:
print("查询错误:", e)
return None
if __name__ == "__main__":
host = 'YOUR_HOST'
port = 3306
user = 'YOUR_USERNAME'
password = 'YOUR_PASSWORD'
db_name = 'forklift'
try:
# 连接数据库
conn = connect_database(host, port, user, password, db_name)
except Exception as e:
print("连接错误:", e)
exit()
# 获取所需信息
fork_info = fetch_fork_info(conn)
if fork_info:
print(f"Auto_ID: {fork_info[0]}, fork_num: {fork_info[1]}, fork_ip: {fork_info[2]}")
else:
print("未找到有效信息。")
# 关闭数据库连接
conn.close()
确保将'YOUR_HOST'
,'YOUR_USERNAME'
和'YOUR_PASSWORD'
替换为实际的数据库连接信息。
这段代码将连接到数据库,执行SQL查询以获取fork_ip
不等于-1
的第一行数据,并将检索到的信息打印出来。如果没有找到有效信息,将相应打印一条提示信息。
E:\software\python\python.exe E:/projects/Forklift/Server/fork_info_access.py
Auto_ID:1,fork_num:155599,fork_ip:198.17.12.25
Process finished with exit code 0
如果想返回所有不重复的结果,而不仅仅是第一个不重复的结果,可以使用fetchall()
方法来获取所有满足条件的行。修改fetch_fork_info
函数如下:
def fetch_all_fork_info(conn):
try:
cursor = conn.cursor()
query = "SELECT Auto_ID, fork_num, fork_ip FROM fork_info WHERE fork_ip != '-1';"
cursor.execute(query)
result = cursor.fetchall()
cursor.close()
return result
except Exception as e:
print("查询错误:", e)
return None
在主函数中调用fetch_all_fork_info
函数,然后使用一个循环来打印所有结果:
if __name__ == "__main__":
host = 'YOUR_HOST'
port = 3306
user = 'YOUR_USERNAME'
password = 'YOUR_PASSWORD'
db_name = 'forklift'
try:
# 连接数据库
conn = connect_database(host, port, user, password, db_name)
except Exception as e:
print("连接错误:", e)
exit()
# 获取所有不重复的信息
all_fork_info = fetch_all_fork_info(conn)
if all_fork_info:
for row in all_fork_info:
print(f"Auto_ID: {row[0]}, fork_num: {row[1]}, fork_ip: {row[2]}")
else:
print("未找到有效信息。")
# 关闭数据库连接
conn.close()
这样,它将会返回数据库中所有满足fork_ip != '-1'
条件的行,并打印出每一行的Auto_ID
、fork_num
和fork_ip
值。如果没有找到有效信息,它将打印相应的提示信息。记得替换'YOUR_HOST'
、'YOUR_USERNAME'
和'YOUR_PASSWORD'
为实际的数据库连接信息。
E:\software\python\python.exe E:/projects/Forklift/Server/fork_info_access_02.py
Auto_ID: 1, fork_num:155599,fork_ip:198.17.12.25
Auto_ID: 2, fork_num:155597,fork_ip:198.17.12.24
Process finished with exit code 0