Q
问题准备发言
2
A
回答
4
你不能只是把你喜欢的地方的占位符。参数占位符只能出现在通常需要表达式的语句中的那些地方。特别是,您不能使用参数占位符来参数化标识符或整个语句结构。这就是为什么你的尝试失败。在Roland Bouman's blog -> MySQL 5: Prepared statement syntax and Dynamic SQL可以找到有关准备语句和动态SQL MYSQL
还有更多有用的东西。
如果你的使用目的是一样的东西:
prepare test
from
'select * from ?' ;
set @myt := 'myTable' ;
execute test
using @myt ;
它根本不起作用。但你可以绕过它:
set @myt := 'myTable'
set @qtext := concat('select * from ',@myt) ;
prepare test
from @qtext ;
execute test ;
1
我从来没有尝试具有表名作为一个变量。我不确定这是否允许。请尝试以下操作:
PREPARE test FROM "SELECT * FROM table_name WHERE column = ?";
由于您没有提供错误消息,因此这是在黑暗中刺中的一种。
相关问题
- 1. PHP的mysqli不准备准备发言
- 2. 休眠的createQuery()准备发言
- 3. 我第一次准备发言
- 4. 准备声明的问题
- 5. jquery文档准备问题
- 6. 准备声明的问题
- 7. Prefetch准备BloodHound问题
- 8. 准备对帐单问题
- 9. 问题与Npgsql准备
- 10. 转换查询,以准备好的发言 - while循环特定问题
- 11. 发布问题:执行但不是发布:准备
- 12. 跨语言开发问题
- 13. 问题与svn提交运行mvn发布:准备
- 14. 表身准备导致设计问题
- 15. 准备好的语句更新问题
- 16. 准备好的陈述问题/ bindValue
- 17. mysql准备的语句插入问题
- 18. PHP中UPDATE语句准备问题
- 19. 问题有关mysqli的准备
- 20. Android准备发布
- 21. 我可以使用学说准备发言ORM
- 22. 例外在Java中的一个MySQL更新准备发言
- 23. 让SKAction playSoundFileNamed多语言准备
- 24. 准备公开头发布
- 25. 准备分发Android API
- 26. Android应用发布语言问题
- 27. 访问从内准备
- 28. 序言问题
- 29. 蓝牙发现设备类型问题
- 30. c语言问题
这是一个很好的例子,可以在预处理语句中使用'?'。 – 2011-03-18 21:21:07
@ypercube嗯,很高兴知道我是对的,但你的答案肯定是优越的。唯一缺少恕我直言的地方是指明你可以做什么和不可以做什么的一个链接。 – 2011-03-19 12:34:38
哦,我忘了添加一个博客文章,彻底解释这个问题以及其他很多关于准备语句的技巧。我现在就添加它。 – 2011-03-19 14:21:01