Tôi đang viết một số mã C++ sử dụng thư viện sqlite3. Tôi đang sử dụng một tuyên bố chuẩn bị mà tôi ràng buộc một biến tại thời gian chạy.câu lệnh chuẩn bị sqlite - cách gỡ lỗi
Làm cách nào để kiểm tra truy vấn SQL trong tuyên bố sau khi kết buộc?
Ví dụ: mã bên dưới không trả về hàng. Khi sử dụng chuỗi premade và sqlite3_exec, tôi nhận được kết quả mong đợi.
sqlite3_stmt *statement;
const char *query = "SELECT * FROM foo WHERE (name='?');";
sqlite3_prepare_v2(db, query, strlen(query), &statemtnt, NULL);
sqlite3_bind_text(statement, 1, "bar", -1, SQLITE3_STATIC);
int result = sqlite3_step(statement);
// expected: result = SQLITE_ROW
// actual: result = SQLITE_DONE
chỉnh sửa: Như Ferdinand đã nêu bên dưới, sự cố trong truy vấn ở trên là dấu ngoặc kép xung quanh?. Tuy nhiên, trong tương lai, tôi vẫn muốn biết cách kiểm tra sqlite3_stmt cho truy vấn thực tế sẽ được thực thi.
Xin lỗi, có một lỗi đánh máy khi viết câu hỏi. Vì vậy, không, đó không phải là vấn đề thực sự, xin lỗi –
Tôi tin rằng dấu chấm phẩy được yêu cầu –