>

내가 가지고있는 mysql 데이터베이스와 인터페이스하는 python 스크립트가 있습니다. 내가 그것을 실행할 때마다 매번 다른 오류가 발생합니다. 나는 그것을 고치기 위해해야 ​​할 일에 대해 너무 혼란스러워지고 있습니다.

기본적으로이 코드는 사용자가 계정 데이터베이스에 대한 검색 매개 변수를 입력하기위한 것이며 스크립트는 MySQL 테이블을 검색하여 계정에 대한 데이터를 가져옵니다.

현재로서는 오류가 없지만 검색 결과는 전혀 반환되지 않습니다.

이전에는 정확한 사용자 이름으로 검색 할 수 있었지만 사용자 이름 내에서 용어를 검색 할 수 있도록 원했습니다. 후자의 모든 시도는 항상 일종의 오류가 발생하거나 MySQL에서 결과를 얻지 못합니다.

import mysql.connector
users1 = mysql.connector.connect(
    host="localhost",
    user="python",
    passwd="HaHaYou'reNotGettingMyPassword",
    database="accounts"
)
cursor=users1.cursor()
usersearch = input("Please input the search term: ")
sql = ("SELECT user_id, username, date, status, description, gen FROM users1 WHERE username LIKE %s")
cursor.execute(sql, ('"' + usersearch + '"'))
result = cursor.fetchall()
for x in result:
    print(x)
print("In Order: User ID, Username, Account Creation Date, bla bla bla")

편집 : SQL 구문이 잘못되었다고 생각했습니다. 문제를 해결하고 이것이 유일한 문제인지 확인하겠습니다.


  • 답변 # 1

    시도 :

    
    sql = ("SELECT user_id, username, date, status, description, gen FROM users1 WHERE username LIKE %s")
    cursor.execute(sql, [usersearch])
    
    
    

  • 답변 # 2

    위에서 전체 사용자 이름을 지정할 때 결과가 나오면 검색어에 "와일드 카드"를 추가하여 기존 문자열을 "찾아"야합니다. 와일드 카드 "%"는 0 개 이상의 문자와 일치합니다.

    예 : 문자열 연결을 다음으로 변경하십시오.

    cursor.execute(sql, ('"%' + usersearch + '%"'))
    
    

    경고 :이 입력 스타일은 사용자 입력이 DB 엔진으로 전송되는 SQL 문의 일부를 생성하는 데 직접 사용되므로 SQL 인젝션 공격에 광범위하게 개방됩니다. 완화 방법에 대해서는이 답변을 참조하십시오.

  • 이전 django에서 기존 데이터베이스 테이블에 대한 모델 작성
  • 다음 css - 사이드 네비게이션 콘텐츠에 적용된 각도가 잘못된 여백 왼쪽