Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Labu, tidak semua argumen dikonversi selama pemformatan string

Hanya mengubah komentar saya sebelumnya menjadi jawaban, karena sepertinya itu solusi yang tepat :-)

Masalahnya datang dari jalur yang berbeda. Anda memiliki ini:

        x = c.execute("SELECT * FROM users WHERE email = (%s)",
                      (email))

Ini tidak melakukan apa yang mungkin Anda pikirkan. Menempatkan email dalam tanda kurung tidak melakukan apa-apa, jadi baris sebenarnya setara dengan meneruskan setiap karakter dari apa pun yang ada dalam variabel itu dalam daftar karakter. Jika Anda melakukan ini:

        x = c.execute("SELECT * FROM users WHERE email = (%s)",
                      (email,))

...maka Anda akan mengirimkan Tuple yang berisi satu item, email , dan itu akan bekerja lebih baik.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. JPA di Java SE:Objek:[dilindungi email] bukan tipe entitas yang dikenal

  2. Bagaimana melakukan JOIN dari dua kolom yang berbeda ke kolom yang sama pada tabel yang terpisah

  3. Bagaimana cara mencadangkan dan memulihkan basis data MySQL?

  4. Bagaimana cara mengunci baris InnoDB yang belum ada?

  5. Apa buku Ruby on Rails favorit Anda dan mengapa?