使用PHP在MySql数据库中插入数据时遇到问题

时间:2011-11-22 18:30:31

标签: php mysql database

这只是一个测试页面,以确保我知道如何将数据插入数据库。

这是我的登录页面:

<?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)"



?>

2 个答案:

答案 0 :(得分:5)

您需要使用mysql_query实际调用您的查询,如下所示:

mysql_query($sql);

您还应该记住逃避输入以确保用户不会滥用SQL injection

您的查询应如下所示:

$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打印实际错误,如下所示:

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

答案 1 :(得分:1)

您需要将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);