
INSERT және параметрлер: шығынды қауіпсіз қосу
Операцияларды бір-бірден және топпен қосып, пайдаланушы мәнін SQL кодынан бөлеміз.
Бұл не үшін қажет
O’Reilly кітабы сияқты ескертпеде апостроф бар. Жолдарды қосу сұрауды бұзады, ал зиянды енгізу оның мағынасын өзгертуі мүмкін; параметр мәнді бөлек жеткізеді.
Бейне. Сұрау — дайын бланк, параметрлер — оның ұяшықтарындағы мәндер; мән бланкіге жаңа команда қоса алмайды.
Алдымен тұтас көрініс
INSERT INTO transactions
(account_id, category_id, happened_on, amount_tiyn, note)
VALUES
(1, 2, '2026-09-15', 735000, 'Groceries');
Талдау
INSERT бағандарын әрқашан атаңыз: кестедегі орын тәртібі мағынаны өзгертпейді. Параметр мәнді ғана алмастырады, кесте мен баған атауын алмастырмайды. Идентификаторларды қолданба рұқсат еткен тізімнен таңдаңыз. INSERT OR REPLACE алдымен қайшы жолды өшіреді; саналы жаңарту үшін UPDATE немесе нақты ON CONFLICT қолданыңыз.
Сабақ картасы
Өз сөзіңізбен айтыңыз
- Бағандарды неге ашық жазамыз?
- Параметр нені алмастыра алады?
- SQL жолдарын біріктіру неліктен қауіпті?
Тапсырма
16 қыркүйекте Card шотынан Transport санатына 3 200,50 теңге шығын қосыңыз; соманы алдын ала тиынға айналдырыңыз.
Жобадағы орны
seed.sql қайталанатын ойдан алынған тарих жасайды; қолданба параметрлер мен транзакцияны пайдаланады.
Жауаптар
Жауаптарды көрсету
db.execute(
"""INSERT INTO transactions
(account_id, category_id, happened_on, amount_tiyn, note)
VALUES (?, ?, ?, ?, ?)""",
(1, 2, "2026-09-15", 735000, "O'Reilly кітабы"),
)
INSERT INTO transactions
(account_id, category_id, happened_on, amount_tiyn, note)
VALUES (1, 4, '2026-09-16', 320050, 'Transport');
Пікірлер (0)
Пікір қалдыру үшін кіріңіз →
Әзірге пікір жоқ. Бірінші болыңыз.