我的PHP代码不会将记录插入SQL dabase表
我的网站上有以下PHP代码/文件,但出于某些不正当的原因,它不会按要求将用户键入的记录插入mySQL数据库表。谁能告诉我这是为什么 就我所知,代码是完全正确的,我不知道为什么会发生这种情况 请帮助…代码如下我的PHP代码不会将记录插入SQL dabase表,php,Php,我的网站上有以下PHP代码/文件,但出于某些不正当的原因,它不会按要求将用户键入的记录插入mySQL数据库表。谁能告诉我这是为什么 就我所知,代码是完全正确的,我不知道为什么会发生这种情况 请帮助…代码如下 <html> <head> </head> <body> <form action="register_development_file_1.php" method="post"> Email: <input ty
<html>
<head>
</head>
<body>
<form action="register_development_file_1.php" method="post">
Email: <input type="text" name="email"><br />
Date: <input type="text" name="date"><br />
Time: <input type="text" name="time"><br />
<input type="submit" name="submit">
</form>
<?php
if (isset($_POST['submit']))
{
$con = mysql_connect("localhost","username","password");
if (!$con)
{
die("Could not connect to the database: " . mysql_error());
}
mysql_select_db("wwwbrecs_BREC",$con);
$sql = "INSERT INTO 'signups' ('signup_email_address', 'signup_date', 'signup_time') VALUES ('$_POST[email]','$_POST[date]','$_POST[time]')";
mysql_query($sql,$con);
mysql_close($con);
}
?>
</body>
</html>
电子邮件:
日期:
时间:
这里是您创建的脚本的一个更好的版本,因为您的脚本对SQL注入是100%开放的,甚至不是传统的编码方式,这更安全,但如果您需要安全,那么我建议您从了解PDO
<?php
if(isset($_POST['submit'])){
mysql_connect("localhost","username","password") or die(mysql_error());
mysql_select_db("wwwbrecs_BREC", $con) or die(mysql_query());
$email = mysql_real_escape_string($_POST['email']);
$date = mysql_real_escape_string($_POST['date'])
$time = mysql_real_escape_string($_POST['time'])
$sql = "INSERT INTO
signups ('signup_email_address', 'signup_date','signup_time')
VALUES ('".$email."','".$date."','".$time."')";
mysql_query($sql, $con) or die(mysql_error());
mysql_close($con);
}
注册表不应该用单引号括起来,而应该用撇号括起来`
所以
$sql = "INSERT INTO 'signups' ('signup_email_address', 'signup_date', 'signup_time') VALUES ('$_POST[email]','$_POST[date]','$_POST[time]')";
应该是
$sql = "INSERT INTO `signups` ('signup_email_address', 'signup_date', 'signup_time') VALUES ('$_POST[email]','$_POST[date]','$_POST[time]')";
INSERT INTO signups (signup_email_address, signup_date, signup _time) VALUES
查询中有一个语法错误,您不应该用引号将表名和列括起来
,
,至少您可以使用倒勾`
INSERT INTO 'signups' ('signup_email_address', 'signup_date','signup_time')
应该是
$sql = "INSERT INTO `signups` ('signup_email_address', 'signup_date', 'signup_time') VALUES ('$_POST[email]','$_POST[date]','$_POST[time]')";
INSERT INTO signups (signup_email_address, signup_date, signup _time) VALUES
或
只有值(实际上不是整数列的整数)应该用引号括起来
然后我想提醒您,
mysql\uuu
函数已被弃用,因此我建议您切换到或,事实上,您正面临sql注入的风险,请看这里。您应该使用prepared station来避免任何风险Checkmysql\u error()
在查询语句之后检查错误。此外,mysql\u x
函数也被弃用。看看PDO和mysqli作为替代品。很抱歉我的php技能很差。什么是提交?你根本不应该使用反勾号为什么不呢?在这里,我找到了一个很好的解释,解释了为什么它们是有用的——设计数据库并不总是由您决定