πΉ SQL-ΠΈΠ½ΡΠ΅ΠΊΡΠΈΡ: Π½Π΅ Π΄Π°ΡΠΌ Π±Π°Π·Π΅ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΡΡΠΆΠΎΠΉ ΠΊΠΎΠ΄ πΉ Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ SQL-ΠΈΠ½ΡΠ΅ΠΊΡΠΈΡ ΠΈ ΠΊΠ°ΠΊ Π΅ΠΉ ΠΏΡΠΎΡΠΈΠ²ΠΎΡΡΠΎΡΡΡ? πΈ SQL (Structured Query Language) ΠΈΠ½ΡΠ΅ΠΊΡΠΈΡ Π½ΡΠΆΠ½Π° ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΏΡΠΈ ΠΊΠΎΠ½ΠΊΠ°ΡΠ΅Π½Π°ΡΠΈΠΈ Π²Ρ ΠΎΠ΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π² Π·Π°ΠΏΡΠΎΡ ΠΌΡ Π΄Π°ΡΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π»ΠΎΠ³ΠΈΠΊΡ Π·Π°ΠΏΡΠΎΡΠ° β ΡΡΠΎ Π»ΠΎΠΌΠ°Π΅Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ ΠΈ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΡΡΠ΅ΡΠΊΠ°ΠΌ Π΄Π°Π½Π½ΡΡ .
πΈ SQL-ΠΈΠ½ΡΠ΅ΠΊΡΠΈΡ ΡΠΈΡΠ°Π΅Ρ ΠΈΠ»ΠΈ ΠΌΠ΅Π½ΡΠ΅Ρ Π΄Π°Π½Π½ΡΠ΅, Π΄Π°ΡΡ ΠΎΠ±Ρ ΠΎΠ΄ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΡΡΠΎΠΊ. ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ, ΠΊΠΎΠ³Π΄Π° Π‘Π£ΠΠ (ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ ) ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΡΡΡΠΎΠΊΡ, ΠΊΠΎΡΠΎΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΡΠΈΡΠ°Π΅Ρ ΠΊΠΎΠ΄ΠΎΠΌ.
πΈ Π‘Π°ΠΌΠ°Ρ Π½Π°Π΄ΡΠΆΠ½Π°Ρ Π·Π°ΡΠΈΡΠ° β prepared statement (ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ). ΠΠ½ΠΈ ΠΎΡΠ΄Π΅Π»ΡΡΡ ΠΊΠΎΠ΄ ΠΎΡ Π΄Π°Π½Π½ΡΡ : ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ, Π‘Π£ΠΠ Π½Π΅ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡ ΠΈΡ ΠΊΠ°ΠΊ SQL.
#ΡΡΠ·Π²ΠΈΠΌΠΎcursor.execute("SELECT * FROM users WHERE username = '" + user + "'")
#Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎcursor.execute("SELECT * FROM users WHERE username = %s", (user,))
πΈ ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ: Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΡ Π²Π²ΠΎΠ΄Π° ΠΈ ΠΏΡΠΈΠ½ΡΠΈΠΏ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΡ ΠΏΡΠ°Π² Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ ΡΠ½ΠΈΠΆΠ°ΡΡ ΡΡΠ΅ΡΠ± ΠΏΡΠΈ ΠΎΡΠΈΠ±ΠΊΠ΅.
π ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ prepared statement + Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΡ + ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠ΅ ΠΏΡΠ°Π²Π°.
β‘οΈ ΠΡ Π² Telegram - Π‘Π΅ΡΠΊΠ΅ - ΠΠ·Π΅Π½ ΠΡΠ΄Ρ ΡΠ°Π΄ Π²Π°ΡΠ΅ΠΉ ΡΠ΅Π°ΠΊΡΠΈΠΈ Π·Π΄Π΅ΡΡβ¬οΈ
Π ΡΡΠΎΠΌ ΠΏΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ ΡΡΡΠ»ΠΊΠΈ, Π½ΠΎ ΠΌΡ ΠΈΡ ΡΠ΄Π°Π»ΠΈΠ»ΠΈ ΠΏΠΎ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌ Π‘Π΅ΡΠΊΠΈ