添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
	//修改前, hello'123写入失败
	char sql[1000]
    char* sql = sprintf("UPDATE table SET name = '%s' WHERE name_id = %d",
                "hello'123", 1);
    rc = sqlite3_exec(db, sql, NULL, NULL, &err_msg);
    if (rc != SQLITE_OK )
        fprintf(stderr, "Failed to updata. \n");
        fprintf(stderr, "SQL error: %s\n", err_msg);
        sqlite3_free(err_msg);
        sqlite3_close(db);
        return -1;
    /* 关闭 */
    sqlite3_close(db);
	return 0;

修改后代码

	//修改后,hello'123写入成功
    char* sql = sqlite3_mprintf("UPDATE table SET name = '%q' WHERE name_id = %d",
                "hello'123", 1);
    rc = sqlite3_exec(db, sql, NULL, NULL, &err_msg);
    if (rc != SQLITE_OK )
        fprintf(stderr, "Failed to updata. \n");
        fprintf(stderr, "SQL error: %s\n", err_msg);
        sqlite3_free(err_msg);
        sqlite3_close(db);
        sqlite3_free(sql);  //别忘了释放
        return -1;
    /* 关闭 */
    sqlite3_close(db);
    sqlite3_free(sql);	//别忘了释放
	return 0;

2. 方法2

使用sqlite3_prepare_v2prepare方式。

sql_query.prepare("INSERT INTO tables VALUES(?, ?);");
sql_query.addBindValue("hello'123");
sql_query.addBindValue("hello");
sql_query.exec();
                    1. 方法sqlite3_mprintf替换sprintf,'%q'替换'%s'.2. 举例修改前代码	//修改前, hello'123写入失败	char sql[1000]    char* sql = sprintf("UPDATE table SET name = '%s' WHERE name_id = %d",                "hello'123", 1);    rc = sqlite3_exec(db, sql, NULL, NULL, &err
CREATE TABLE `xs_sessions` ( `session_uuid` VARCHAR(36) NOT NULL,
	`teacher_uuid` VARCHAR(36) NOT NULL,
	`name` VARCHAR(128) NOT NU
关于Insert字符串 ,在(单引号,双引号)这个方面发生了问题,其实主要是因为数据类型和变量在作怪。
下面我们就分别讲述,虽然说的是Insert语句, 但是Select、Update、Delete语句都是一样的。
假如有下述表格: 
mytabe 
字段1 username ...
				
在保存文本时,有时会提示出错,有可能是文本中含有单引号,那如何插入单引号(')的字符串? 将所有单引号替换为两个单引号,保存到SQLite数据库中时自动恢复为单引号,也就是说使用双单引号即可,例如: INSERT INTO xyz VALUES('5 O''clock'); 插入数据库的是:5 0'clock。
http://www.yiibai.com/sqlite/sqlite_injection.html 如果用户通过网页输入,并将其插入到一个SQLite数据库中,有一个机会,已经离开自己敞开的一个被称为SQL注入的安全问题。这一课将教你如何帮助防止这种情况的发生,并帮助保护脚本和SQLite语句。 注入通常发生在需求用户输入,就像他们的名字,而不是一个名字,他们给一个SQLite语句,会在不知
这将向名为 "users" 的表中插入一行数据,其中 "name" 列的值为 "John Doe","age" 列的值为 30。 需要注意的是,如果字符串本身包含单引号,则需要使用两个单引号来进行转义,例如: INSERT INTO users (name, age) VALUES ('Mary O''Connell', 25); 这将向名为 "users" 的表中插入一行数据,其中 "name" 列的值为 "Mary O'Connell","age" 列的值为 25。
Qt Creator远程部署qt应用程序到开发板,报错 qt.qpa.plugin: Could not find the Qt platform plugin “eglfs“ in ““ 你吃辣条的样子好帅: 看正点原子Qt搭建文档V1.1版本有提到这个问题