2013-11-03 114 views
0

我是PHP新手。 我試圖將表單數據插入到本地數據庫的SQL數據。 我總是收到失敗的錯誤。Php簡單插入表單數據到數據庫不工作

這裏我是我的兩個相同的文件。 請指導我解決相同的查詢。

<?php 

$mysql_hostname = "localhost"; 
$mysql_user = "root"; 
$mysql_password = ""; 
$mysql_database = "my_db"; 

$bd = mysql_connect($mysql_hostname, $mysql_user, $mysql_password) or die("Opps some thing went wrong"); 
mysql_select_db($mysql_database, $bd) or die("Opps some thing went wrong"); 


$sql_insert = "INSERT INTO company ('company_no','name', 'address', 'model','fabno', 'startdate', 'enddate', 
       'InvoiceDate', 'contatctPerson','phoneNumber', 'mailId', 'ccsNO', 'ElgiRegion', 'kmreading') 
    VALUES (NULL,'$_POST[compnay_name]','$_POST[address]','$_POST[fabno]','$_POST[startdate]','$_POST[enddate]', 
     '$_POST[InvoiceDate]','$_POST[contatctPerson]','$_POST[phoneNumber]', 
      '$_POST[mailId]','$_POST[ccsNO]','$_POST[ElgiRegion]','$_POST[kmreading]')"; 

echo "$sql_insert"; 

$result = mysql_query($sql_insert,$bd); 

if ($result) { 
    echo("<br>Input data is succeed"); 
} else { 
    echo("<br>Input data is fail"); 
} 

mysql_close($bd); 

?> 

我在這裏總是輸入數據失敗。

+0

mysql_error()爲您提供MySQL報告的最後一個錯誤。將echo(「
輸入數據失敗」)更改爲'echo mysql_error()'並告訴我們它給了你什麼。 –

+0

'mysql_'函數已經過時。請使用[PDO](http://us1.php.net/manual/en/ref.pdo-mysql.php)或[mysqli](http://us1.php.net/manual/en/book.mysqli .PHP)。此外,你不應該使用字符串互操作,以建立從POST數據的SQL查詢,因爲它的[SQL注入](http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-創造潛力in-php) – Dan

+0

我真的不同意你的決定。如果有問題的話,開發人員可以在棧式流程中找到答案。 我不認爲這個政策只關閉問題,因爲對此的理解較少。 我已經提到我是PHP新手。讓我們有關android和嵌入式的問題。與其他人相比,我會保持很長時間。 我堅信人們應該看看我的評論。 – NovusMobile

回答

1

首先,你還沒有逃過你的任何數據。如果我是張貼到您的形式「讓我們黨」您的SQL休息,因爲我撇號,使您的SQL看起來像

VALUES(NULL, 'Let's have a party') 

您可以通過mysql_real_escape_string通過你的數據解決這個(我只顯示一個片段例如)

$sql = "VALUES (NULL,'" . mysql_real_escape_string($_POST['company_name']) . "')"; 

,讓您的SQL看起來像這樣

VALUES(NULL, 'Let\'s have a party') 

這使我想起我的最後一點。如果你點擊上面我的鏈接,你看到的大,可怕的紅色塊你mysql_折舊,可能與PHP的未來版本中刪除警告。嘗試使用mysqli

+0

感謝Mchavity的幫助。 – NovusMobile

0

看起來你的查詢中有很多拼寫錯誤。例如'contatctPerson'。我猜這應該是「contactPerson」。如果您使用的表格沒有與字段名稱相同的拼寫錯誤,則這些錯別字將導致錯誤。我會建議一個接一個地逐字,並校對所有值的拼寫。