iT邦幫忙

0

實作API 跟資料庫互動問題

https://ithelp.ithome.com.tw/upload/images/20191219/20122325Jigjp4dgCz.png
如上圖

我直接conn.query("UPDATE pbdat SET exppb=1 WHERE pb_id=0",[insertValues], (error, result) =>.....
我直用打欄位的值 可以寫入

但是我用變數傳過來json 只要寫入就會顯示1064的錯誤 那個錯誤好像是用到資料庫的保留字
想請問有人又大大可以幫我解答

iamfish93 iT邦新手 5 級 ‧ 2019-12-20 14:33:08 檢舉
?不能直接傳JSON進去啦
知道了 後來有看它其他講解 謝謝
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

2
一級屠豬士
iT邦大師 1 級 ‧ 2019-12-19 23:31:10
最佳解答

你SQL Command 不夠完整.

-- 你的 code
update pbdat set ? where pb_id = 0

沒有表明要 set 哪個欄位(column).

update pbdat set col = ? where pb_id = 0

col 要自己調整.

你的圖片裡的code,跟你外面的code 不同.

另外 json 跟資料庫,還有蠻多細節的.你先一步步來吧.

dragonH iT邦超人 5 級 ‧ 2019-12-19 23:38:35 檢舉

官方 doc 支援

connection.query('UPDATE users SET foo = ?, bar = ?, baz = ? WHERE id = ?', ['a', 'b', 'c', userId], function (error, results, fields) {
  if (error) throw error;
  // ...
});

看起來是想做參數化查詢但弄錯指令了...

好的 了解 謝謝各位

0
iamfish93
iT邦新手 5 級 ‧ 2019-12-20 14:33:46

你SQL傳值的用法錯了,
SQL中的變數?不能直接傳JSON進去,{ expbb : 1 }並不會被解析成exppb=1的語句,
應該要寫為SET exppb=? ,然後傳入你要寫入exppb欄位的值(1)

好的 感謝解答

我要發表回答

立即登入回答