简而言之,我通常使用 sprintf 在 C 中构建 MySQL 查询
i.e.
sprintf(sqlcmd,"update foo set dog=\"lab\" where description=\"%s\"",some_desc);
mysql_query(some_conn,sqlcmd);
但是如果 some_desc 是这样的疯狂的 5 英寸狗,然后 MySql Server 尖叫起来,因为它对悬空的引号感到困惑。
在C中,最好扫描some_desc,用“”替换“,或者MySql中是否有一个函数可以更好地包装它......即description = string(Crazy 5” Dog)?
Thanks!
虽然 MySQL 有一个mysql_real_escape_string()函数,你可能应该使用准备好的陈述相反,哪个允许您使用 ?占位符代替真实参数,然后在每次执行语句之前将它们绑定到真实参数。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)