MySqlCommand 上的查询语法错误
Query syntax error on MySqlCommand
我正在使用 MySqlCommand 在我的 vb.net
应用程序中执行查询插入,现在我有这个查询:
UPDATE primo_appointments SET
book_datetime = @parameter1,
start_datetime = @parameter2,
end_datetime = @parameter3,
notes = @parameter4,
hash = @parameter5,
is_unavailable = @parameter6
WHERE hash = xqA5jdsFBLPTrvy5kKHfgXBZdv9Hs2Ld
AND lastUpdated = 12-01-2016 15:53:47.3978486
当我这样做时:.ExecuteNonQuery()
出现这个错误:
you have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '15:53:47.3978486' at line 1.
怎么了?
你的varchar应该在2之间'
,你的查询应该是:
UPDATE primo_appointments SET book_datetime = @parameter1,
start_datetime = @parameter2, end_datetime = @parameter3,
notes = @parameter4, hash = @parameter5, is_unavailable = @parameter6
WHERE hash = 'xqA5jdsFBLPTrvy5kKHfgXBZdv9Hs2Ld'
AND lastUpdated = '12-01-2016 15:53:47.3978486'
您的 lastUpdated
和 hash
没有用单引号引起来,这是您出错的原因。
对此的修复是不是将其括在引号中,而是对这些值以及其他值使用参数:
UPDATE primo_appointments SET
book_datetime = @parameter1,
start_datetime = @parameter2,
end_datetime = @parameter3,
notes = @parameter4,
hash = @parameter5,
is_unavailable = @parameter6
WHERE hash = @oldHashString
AND lastUpdated = @lastUpdatedDate
当您使用参数化列表时,您不必记住某个字段是否需要用引号引起来 - 这已经为您处理好了。它还可以保护您免受 SQL 注入攻击。
我正在使用 MySqlCommand 在我的 vb.net
应用程序中执行查询插入,现在我有这个查询:
UPDATE primo_appointments SET
book_datetime = @parameter1,
start_datetime = @parameter2,
end_datetime = @parameter3,
notes = @parameter4,
hash = @parameter5,
is_unavailable = @parameter6
WHERE hash = xqA5jdsFBLPTrvy5kKHfgXBZdv9Hs2Ld
AND lastUpdated = 12-01-2016 15:53:47.3978486
当我这样做时:.ExecuteNonQuery()
出现这个错误:
you have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '15:53:47.3978486' at line 1.
怎么了?
你的varchar应该在2之间'
,你的查询应该是:
UPDATE primo_appointments SET book_datetime = @parameter1,
start_datetime = @parameter2, end_datetime = @parameter3,
notes = @parameter4, hash = @parameter5, is_unavailable = @parameter6
WHERE hash = 'xqA5jdsFBLPTrvy5kKHfgXBZdv9Hs2Ld'
AND lastUpdated = '12-01-2016 15:53:47.3978486'
您的 lastUpdated
和 hash
没有用单引号引起来,这是您出错的原因。
对此的修复是不是将其括在引号中,而是对这些值以及其他值使用参数:
UPDATE primo_appointments SET
book_datetime = @parameter1,
start_datetime = @parameter2,
end_datetime = @parameter3,
notes = @parameter4,
hash = @parameter5,
is_unavailable = @parameter6
WHERE hash = @oldHashString
AND lastUpdated = @lastUpdatedDate
当您使用参数化列表时,您不必记住某个字段是否需要用引号引起来 - 这已经为您处理好了。它还可以保护您免受 SQL 注入攻击。