菜鸟问:mysql_stmt_prepare 的问题

oun 2015-06-17 04:22:45

有sql语句:alter table test_db.test_tbl auto_increment=5

1、使用普通的query方式(调用mysql_query)能正确执行,表明没有语法错误;

2、使用prepare方式(即调用mysql_stmt_prepare 族api)正确执行,执行其它带?的sql语句也正确;

3、问题来了,如果使用prepare方式并改语句为:
alter table test_db.test_tbl auto_increment=?

那么在调用 mysql_stmt_prepare 时,报错说“在?附近有语法错误”。唯独这句不行,怎么回事?

请问有遇到过类似问题的朋友吗?

...全文
367 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhu19774279 2015-06-19
  • 打赏
  • 举报
回复
prepare会自动给?的参数前后加上单引号('),这个会导致传入的SQL语句发生变化,建议你打开MySQL的语句记录,看看最终传入MySQL的语句到底是什么。
ACMAIN_CHM 2015-06-19
  • 打赏
  • 举报
回复
不是所有的语句都能被PREPARE支持的。建议先直接在MYSQL的命令行工具下测试一下使用的版本是否支持。

56,677

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧