[英]Add SQL strings in a Query
我在Delphi 10.2中有此代碼,並在android中運行。 數據位於遠程mysql服務器中。
Query1.SQL.Text := '';
Query1.SQL.Add('SELECT userid, userphoto, username');
Query1.SQL.Add('FROM users');
Query1.SQL.Add('WHERE usermail = ' + #39 + Text1.Text + #39);
Query1.Execute;
問題是這樣在查詢中添加了SQL
SELECT userid, userphoto, username
FROM users
WHERE usermail = 'THE TEXT
'
該SQL返回一個空字段。 為什么最后一個字符換行? 感謝您的回答。
Text1
是哪種組件? 是否接受換行符? 看起來訪問Text1.Text
返回'THE TEXT'#10
。
嘗試檢查最后一個字符是否為#10
(或者可能為#13
或最后兩個字符為#13#10
)並將其刪除。
並執行Bruce McGee所說的:使用帶有參數的查詢。 我們不需要另一個容易受到SQL注入攻擊的應用程序。
嘗試Query
函數Parameters.ParamByName
。
在SQL查詢中創建一個名稱為:email
的參數,然后分配string
值,例如:
Query1.SQL.Clear;
Query1.SQL.Text('SELECT userid, userphoto, username From users where useremail = :email');
Query1.SQL.ParamByName('useremail').Value := 'THE TEXT';
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.