2011-11-22 83 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); 
相关问题