請幫我看這段MYSQL語法是否有誤

2007-08-03 6:10 am
以下是一段MYSQL語法


$sql="insert into reserve2 (id,nowtime2,reserve_date,reserve_time,reserve_name,reserve_number,name,email,tel,contact_time,im_type,im_account,comment,read,group_read,ip) values('2','$nowtime2','$reserve_date','$reserve_time','$reserve_name','$reserve_number','$name','$email','$tel','$contact_time','$im_type','$im_account','$comment','0','0','$ip')" ;




$rs=mysql_query($sql) ;




mysql資料表中設定的欄位 (從PHPMYADMIN直接抓下來的,應該無誤)


id
nowtime2
reserve_date
reserve_time
reserve_name
reserve_number
name
email
tel
contact_time
im_type
im_account
comment
read
group_read
ip




各位朋友請幫我看一下這段MYSQL語法哪裡有誤,像是欄位名稱跟MYSQL語法指定的欄位名稱少一個字,或是有用到MYSQL跟PHP保留字,所以會造成無法寫入,請幫我查一下哪裡有誤.如果是省略欄位,直接填入,改成下面這樣.



$sql="insert into reserve2 values('2','$nowtime2','$reserve_date','$reserve_time','$reserve_name','$reserve_number','$name','$email','$tel','$contact_time','$im_type','$im_account','$comment','0','0','$ip')" ;




那就可以寫入
圖片參考:http://tw.yimg.com/i/tw/blog/rte/smiley_6.gif

請幫我看看
贈廿點~
感謝各路高手指點,不勝感激~
圖片參考:http://tw.yimg.com/i/tw/blog/rte/smiley_1.gif

回答 (2)

2007-08-03 5:32 pm
✔ 最佳答案
read 是 MySQL 的 reserved word

如果要欄位名稱堅持要用到 MySQL 的 reserved word 來當作欄位名稱的話

請把欄位名稱用 'fieldName' 去表示

如 select id, name, 'read' from reserve2

所以要改成(....表示省略不寫)
$sql="insert into reserve2 (...., 'read' , ....) values(....)" ;



所有 MySQL 的 reserved-words(我多把它加到我的最愛)
http://dev.mysql.com/doc/refman/5.0/en/reserved-words.html
2007-08-03 2:20 pm
欄位名稱不能用 id (也不能用 index )
把那個欄位改成 reserve_id 看看
參考: 自己


收錄日期: 2021-04-11 17:10:52
原文連結 [永久失效]:
https://hk.answers.yahoo.com/question/index?qid=20070802000010KK11244

檢視 Wayback Machine 備份