2011-11-22 84 views
0

這只是一個測試頁面,以確保我知道如何將數據插入到數據庫中。在使用PHP插入MySql數據庫中的數據時遇到問題

這是我的登錄頁面:

<?php 

$mysql_host = "[HOST REMOVED]"; 
$mysql_database = "a8700070_test"; 
$mysql_user = "a8700070_admin"; 
$mysql_password = "[PASSWORD REMOVED]"; 
?> 

這是我對形式的代碼。

<form action="db.php" method="post"> 

<input name="name" type="text"> 
<input name="age" type="text"> 
<input name="title" type="text"> 
<input name="person" type="text"> 
<input name="ok" type="text"> 
<input name="GO!" type="submit"> 



</form> 

這是我已經將它插入到表中的代碼。

<?php // 
require_once 'login.php'; 
$db_server= mysql_connect($mysql_host, $mysql_user, $mysql_password); 

if (!$db_server) die("Unable to connect to MySQL: " . mysql_error()); 

mysql_select_db($mysql_database) or die("Unable to select database: " . mysql_error()); 

$namer = $_POST["name"]; 
$age = $_POST["age"]; 
$tit = $_POST["title"]; 
$k = $_POST["ok"]; 
$pers = $_POST["person"]; 

echo "$namer"; 

$sql="INSERT INTO test (title,person,age,date,ok) 
VALUES($namer,$age,$tit,$k,$pers)" 



?> 
+0

......你究竟有什麼樣的麻煩? – JJJ

+0

你真的想與全世界分享你的mysql密碼嗎?與您具有相同虛擬主機的用戶將能夠訪問您的數據庫。 –

+1

您必須將查詢值放在單引號中,如''namer''中所示。你必須務必逃避他們對SQL注入攻擊。 '$ namer = mysql_real_escape_string($ _POST ['name']);'http://en.wikipedia.org/wiki/SQL_injection –

回答

5

你需要實際上mysql_query這樣叫你的查詢:

mysql_query($sql); 

你應該還記得逃避你的意見,以確保用戶與SQL injection不會濫用它。

您的查詢應該是這樣的:

mysql_query($sql) or die(mysql_error()); 
+1

你還應該提到可能的mysql注入點 –

+0

好點,會補充一點。 –

+0

我使用這個爲mysql_query,我仍然收到錯誤。 mysql_query($ sql,$ db_server); – willkara

1

你需要獨立的變量:

$sql = "INSERT INTO test (title,person,age,date,ok) VALUES('".mysql_real_escape_string($namer)."','".mysql_real_escape_string($age)."','".mysql_real_escape_string($tit)."','".mysql_real_escape_string($k)."','".mysql_real_escape_string($pers)."')"; 

如果您收到一個錯誤,你可以用mysql_error這樣打印的實際錯誤在您的SQL查詢單引號,並應妥善逃避他們...

$sql="INSERT INTO test (title,person,age,date,ok) 
VALUES('".mysql_real_escape_string($namer)."','".mysql_real_escape_string($age)."','".mysql_real_escape_string($tit)."','".mysql_real_escape_string($k)."','".mysql_real_escape_string($pers)."') 

然後實際運行查詢

$query = mysql_query($sql); 
相關問題