2012-11-20 79 views
1

我試圖通過PHP插入數據到數據庫中..足夠簡單(我認爲)。我無法弄清楚我做錯了什麼。這裏是我的代碼:Php簡單錯誤

$DB_HostName = "localhost:8888"; 
$DB_Name = "Sample"; 
$DB_User = "root"; 
$DB_Pass = "root"; 
$DB_Table = "Check"; 

$con = mysql_connect($DB_HostName,$DB_User,$DB_Pass) or die(mysql_error()); 
mysql_select_db($DB_Name,$con) or die(mysql_error()); 


$sql = "INSERT INTO $DB_Table (name) VALUES ('Sally') "; 
mysql_query($sql) or die ("Error with Result"); 

mysql_close($con); 

它給了我一個錯誤,說「與結果錯誤」。這意味着它必須正確連接到數據庫,並且除了結束部分之外,一切都正常工作。我錯過了什麼?如果我說(msql_error())它也告訴我檢查$ sql。我無法弄清楚我輸入的內容是錯誤的。

回答

4

與反引號逃脫你的數據庫名稱

$sql = "INSERT INTO `$DB_Table` (name) VALUES ('Sally') "; 

$sql = "INSERT INTO `" . $DB_Table . "` (name) VALUES ('Sally') "; 

CHECK是MySQL中保留關鍵字。

+1

哇..這讓我很煩,因爲我已經在這裏坐了幾個小時試圖爲什麼我收到此錯誤弄清楚。謝謝你 – Zack

+0

不客氣:D –

+1

+1 Wat快速回答 –

0

我不能強調這一點,不要使用mysql_功能,即時代已經一去不復返了。使用mysqliPDO

一個簡單的檢查方法有什麼不對您的SQL查詢是添加一個錯誤標誌上的模具聲明mysql_query($sql) or die ("Error with Result<br>".mysql_error());

它出現在你的情況到底該check是用來限制值的範圍約束可以放在一列中。你將需要確定它是使用「`」的表:

$sql = "INSERT INTO `$DB_Table` (name) VALUES ('Sally') ";