我试图运行一个使用绑定变量对mysql数据库引擎的查询.我想知道如何告诉引擎"重置"绑定变量赋值.我敢肯定,一个例子会比我的大脑更好地解释.
这是查询:
INSERT INTO site_support_docs
(
ASSET_ID,
TIME_STAMP,
SITE_NAME,
DOCUMENT_NAME,
DOCUMENT_LOCATION,
DOCUMENT_CONTENT,
DOCUMENT_LAST_MODIFIED
)
VALUES (?, ?, ?, ?, ?, ?, STR_TO_DATE(?, '%M %e, %Y %r'))
ON DUPLICATE KEY UPDATE asset_id = ?,
time_stamp = ?,
site_name = ?,
document_name = ?,
document_location = ?,
document_content = ?,
document_last_modified =
STR_TO_DATE(?, '%M %e, %Y %r')
Run Code Online (Sandbox Code Playgroud)
我的问题是第八个"?" 当只有七个时,它被解释为一个新的绑定变量.无论如何,我想我可以恢复使用实际值...但是,我确信有更好的方法.马特
MySQL提供了一个"VALUES()"函数,它提供了在不存在重复键冲突的情况下插入的值.您不需要重复占位符.
在DUPLICATE KEY UPDATE x = VALUES(x)中插入值(?);
http://dev.mysql.com/doc/refman/5.0/en/miscellaneous-functions.html#function_values