Sử dụng Delphi 2010, tôi đã sử dụng TSQLQuery và TSQLConnection để kết nối với máy chủ MySQL từ xa. Tôi đã sử dụng truy vấn SQL như sau:Làm cách nào để nhận được kết quả của truy vấn SQL?
SQLQuery1.SQL.Text := 'SELECT * FROM registered WHERE email="'+email+'" and login_pass="'+password+'"';
SQLQuery1.Open; // Open sql connection
Tôi nên làm gì để liệt kê hoặc hiển thị dữ liệu được truy vấn này chọn?
Khi tôi gõ
SQLQuery1['who']; // The resault is : James Kan
Tôi nghĩ rằng đó là hiển thị mục cuối cùng trong danh sách. Nhưng tôi muốn hiển thị mỗi mục, như tôi có thể với vòng lặp foreach trong PHP. Làm thế nào tôi có thể tạo ra, ví dụ, một TLabel cho mỗi mục?
Là một sang một bên lưu ý, cách bạn mã SQL là cách thông thường để cho phép "SQL Injection". Làm điều đó cho một bảng đăng nhập, và một người dùng thông minh có thể đọc toàn bộ bảng. Bạn nên sử dụng "tham số SQL", nghĩa là nơi email =: email và login_pass =: mật khẩu. Chuỗi ghép nối mà không cần "khử trùng" đầu tiên, chúng rất nguy hiểm vì người dùng có thể nhập các từ khóa "thích hợp" và thay đổi truy vấn của bạn nghĩa là toàn bộ. –
Sử dụng các tham số sẽ thoát khỏi các giá trị, nhưng bạn sẽ muốn lọc ra 'NULL'. Ngoài ra, lọc ra '%' và '_' với mệnh đề LIKE. –