Yahoo奇摩知識+ 將於 2021 年 5 月 4 日 (美國東部時間) 終止服務。自 2021 年 4 月 20 日 (美國東部時間) 起,Yahoo奇摩知識+ 網站將會轉為唯讀模式。其他 Yahoo奇摩產品與服務或您的 Yahoo奇摩帳號都不會受影響。如需關於 Yahoo奇摩知識+ 停止服務以及下載您個人資料的資訊,請參閱說明網頁。

小愛 發問時間: 電腦與網際網路程式設計 · 1 0 年前

將資料寫進MySQL資料庫 發現錯誤訊息

我是使用free-site-host免費虛擬主機的sql,程式碼如下

但在表單輸入資料之後,傳送表單之後卻顯示"資料寫入失敗"

在更前一陣子測試時他是顯示「Lost connection to MySQL server during query」

想請問一下各位為什麼會這樣

或者有另外有甚麼程式碼可以把資料寫入資料庫裡而不會發生這種錯誤?

又或者是資料表有錯??因為其實我不太會建資料表,我是使用phpmyadmain,我的欄位名字就是name,stno,check,note1....etc,除了長度我有打數字之外其他我都沒有改

請各位指教

======以下為程式碼=======

<?

$dbh=mysql_connect("localhost","LL","aaaa") or die ('I cannot connect to the database because: ' . mysql_error());

mysql_select_db("note");

$sql="insert into notevote ('name','stno','check','note1','note2','note3','note4','note5','note6','note7','note8','note9','note10',

'all1',all2,all3,all4,all5,all6,all7,all8,all9,all10,

no1,no2,no3,no4,no5,no6,no7,no8,no9,no10,date) values('$vName','$vStno','$vcheck','$vnote1'

,'$vnote2','$vnote3','$vnote4','$vnote5','$vnote6','$vnote7','$vnote8','$vnote9','$vnote10'

,'$vall1','$vall2','$vall3','$vall4','$vall5','$vall6','$vall7','$vall8','$vall9','$vall10'

,'$vno1','$vno2','$vno3','$vno4','$vno5','$vno6','$vno7','$vno8','$vno9','$vno10','$date')";

$rs=mysql_query($spl);

if ($rs){

echo "資料寫入成功!!" ;

}else{

echo "資料寫入失敗!!" ;

}//關閉資料庫

?>

已更新項目:

程式碼內容是出自 http://tw.knowledge.yahoo.com/question/question?qi...

再修改過的

2 個已更新項目:

貼回phpmyadmin之後

MySQL 傳回:

#1046 - No database selected

3 個已更新項目:

我把引號改掉了,然後把$sql貼回PMA之後得到

#1064 - 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 '"insert into notevote (name,stno,checkno,note1,note2,note3,note4

意思就是指php與mysql出了問題?

可以改善嗎>

4 個已更新項目:

順便請問一下資料表裡的NULL是甚麼意思

4 個解答

評分
  • 1 0 年前
    最佳解答

    很明顯您的sql語法本身就有誤喔!!

    insert into 的用法:

    insert into 資料表名稱(欄位名稱) values (值)

    欄位名通常不會用單引號 ' ,

    您所提供的http://tw.knowledge.yahoo.com/question/question?qi... 這個範例也是在欄位的部份(name,pass)沒用單引號,

    $sql="insert into 123 (name,pass) values ('$name,'$pass')";

    您需要修正一下語法喔!!

    此外 #1046 - No database selected 表示您的資料表需要再檢查一下,是否已建立與您的sql語法內的欄位名稱是否有誤!!

    希望有幫到您,加油嘍!!

    參考資料: 自己 http://www.opitem.net/
  • 1 0 年前

    NULL means empty. You didn't insert any data into this column.

  • 1 0 年前

    這個問題依據我以往的經驗是他們在裝php + mysql時出了問題!

  • W.B.G
    Lv 6
    1 0 年前

    $sql="insert into notevote ('name','stno','check','note1','note2'......

    $rs=mysql_query($spl);

    變數名稱錯誤一個是$sql一個是$spl,可以試試看echo $sql;之後將sql語法貼到phpmyadmin看看

    參考資料: myself
還有問題?馬上發問,尋求解答。