Это скрипт, который я вызываю, чтобы получить номер телефона на основе имени пользователя через python, используя mysql
def get_number_based_on_phone( username):
"""get the username based on number"""
sql = 'SELECT phone_number from user_data_base WHERE `user_name` = %s' % (username)
db = dbq()
phone_number = db.getFieldValue(sql)
return phone_number
class dbq:
def __init__(self):
self._conn = mysql.connector.connect(user='xxx', password='xxx', host='127.0.0.1', database='users')
self._cursor = self._conn.cursor(buffered=True)
def closeConn(self):
self._cursor.close()
self._conn.close()
def db_query(self, sql):
self._cursor.execute(sql)
rows = self._cursor.fetchall()
df = DataFrame(rows, columns=self._cursor.column_names)
return df
def getFieldValue(self, sql):
try:
self._cursor.execute(sql)
row = self._cursor.fetchone()
if row is None:
qid_value = ""
else:
if row[0] is None:
qid_value = ""
else:
qid_value = str(row[0])
return qid_value
except Error as error:
print(error)
finally:
self._cursor.close()
self._conn.close()
Когда я вызываю функцию:
get_number_based_on_phone("ODIN")
Полученное сообщение об ошибке:
1054 (42S22): Unknown column 'odin' in 'where clause'
Если я не передаю имя пользователя как переменную, а просто вызываю его как обычный запрос в mysql, то, похоже, проблем не возникает. «ODIN» является одним из имени пользователя в базе данных