2012-11-11 62 views
0

我想知道如果任何人有輸入,爲什麼這種說法是沒有插入我的MySQL數據庫。它沒有顯示任何錯誤,當我手動輸入SQL語句時,它會插入信息。PHP不插入到MySQL數據庫的所有staments在那裏

<?php 

$host="mysql16.000webhost.com"; 
$user_name="a1611480_akaash"; 
$pwd="*****"; 
$database_name="a1611480_akaash"; 
$db=mysql_connect($host, $user_name, $pwd); 

$sql = "INSERT INTO mydata VALUES ('dude1', 'dude2', 'dude3', 'dude4', 'dude5')"; 

mysql_query($sql); 

?> 

感謝,

+1

你確定你不需要'update'附上您的代碼? –

+0

mysql_select_db呢? –

回答

4

這是由於MySQL不知道使用這個SQL語句的數據庫。 包括mysql_select_db

mysql_select_db($database_name); 

爲了獲得在PHP中的任何類型的錯誤(除非是嚴重錯誤)與try塊

try{ 
    // db code 
}catch(Exception $e){ 
    // something is wrong 
    echo "Oh God! I got this ". $e->getMessage(); 
} 
+0

太棒了,非常感謝你。這對我來說似乎很奇怪,儘管我告訴它我連接的數據庫並不知道要查看那個數據庫。 – Akaash

2

要查看錯誤做到這一點:

mysql_query($sql) or die("Error:".mysql_error()); 

而且從查詢我假設你有一列,你想這樣也許添加多個值 這格式:

$sql = "INSERT INTO mydata VALUES 
     ('dude1'), ('dude2'), ('dude3'), ('dude4'), ('dude5);"; 
+0

同意。並停止使用MySQL函數並開始使用PDO或MySQLi。文檔頁面上那個大紅色的盒子有很好的理由;) –

+0

**在代碼中間死掉並不是件好事。可能會打開需要關閉的資源。 –

+0

非常感謝這裏的錯誤消息部分。它將在未來派上用場。 – Akaash

0

那是因爲你沒有提到的列名 - 看到http://www.w3schools.com/php/php_mysql_insert.asp 此外,您忘了選擇數據庫 - mysql_select_db(「my_db」);所以你的查詢必須是類似於「INSERT INTO mydata(column1,column2,column3,column4,column5)VALUES('dude1','dude2','dude3','dude4','dude5')。 「;

編輯:當然Corey是對的。它只是一個更好的做法,我想 - 我總是做吧:)

+0

如果所有值都存在,則不必列出列。 –

+0

來自你自己的鏈接:第一種形式沒有指定數據將被插入的列名,只有它們的值 –

0

您正在連接到遠程主機,你確定你有權利這樣做?這段代碼在哪裏執行?

1.4.3的mysql_error()結果將是有益的!