简单的表查询语法错误?
我希望这里有人能帮我看看这个错误来自哪里。
我有一个有两个字段的表单:电子邮件和密码。 表单的动作将它带到应该使用的php页面
在这个阶段它是不完整的,我只回应脚本末尾的一些字段,看它是否有效。
我测试了它,并且在最后一行发现了一个意外的结束错误; 我遗漏了一个支架。 所以我虽然没有其他错误,但是当我再次测试时,我得到了这个错误:
你的SQL语法有错误; 请检查与您的MySQL服务器版本相对应的手册,在第6行的'@ gmail.com'附近使用正确的语法
@ gmail.com是我提交的电子邮件的最后一位。
以下是php(action)页面的代码:
<?php
session_start();
$_SESSION['sessionemail'] = $_POST['email'];
$_SESSION['sessionpassword'] = $_POST['password'];
$_SESSION['authuser'] = 0;
$dbhost = 'somewhere.com';
$dbuser = 'user';
$dbpass = 'pw';
$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ('Error connecting to mysql');
$dbname = 'medreunten_db1';
mysql_select_db($dbname) or die(mysql_error($conn));
$query = 'SELECT
name, smacker, surname, sex, age, nationality, email
FROM
employee
WHERE
email = ' . $_POST['email'];
$result = mysql_query($query, $conn) or die (mysql_error($conn));
extract(mysql_fetch_assoc($result));
while ($row = mysql_fetch_array($result)) {
echo $row['name'];
echo $row['surname'];
echo $row['age'];
}
?>
我试着删除了前5行,但我仍然遇到了同样的错误。
不知何故,当PHP被解析,浏览器读取电子邮件变量的内容,就好像它是我的PHP代码的一部分。 至少这就是我的想法,因为我收到的错误指出“@ gmail.com”附近的语法存在问题。
我希望有人能给我一个线索!
您有一个SQL注入,在发送到MySQL数据库之前,始终将mysql_real_escape_string()
应用于任何用户提交的或可能被篡改的数据。
注意'
围绕电子邮件变量。
$email = mysql_real_escape_string($_POST['email']);
$query = "
SELECT name, smacker, surname, sex, age, nationality, email
FROM employee
WHERE email = '$email'
";
<?php
session_start();
$_SESSION['sessionemail'] = $_POST['email'];
$_SESSION['sessionpassword'] = $_POST['password'];
$_SESSION['authuser'] = 0;
$dbhost = 'dedi147.cpt2.host-h.net';
$dbuser = 'medreunten_1';
$dbpass = 'AGqrVrs8';
$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ('Error connecting to mysql');
$dbname = 'medreunten_db1';
mysql_select_db($dbname) or die(mysql_error($conn));
$query = "SELECT name, smacker, surname, sex, age, nationality, email FROM employee WHERE email = '" . $_POST['email']."'";
$result = mysql_query($query, $conn) or die (mysql_error($conn));
extract(mysql_fetch_assoc($result));
while ($row = mysql_fetch_array($result)) {
echo $row['name'];
echo $row['surname'];
echo $row['age'];
}
?>
尝试这个,应该工作
链接地址: http://www.djcxy.com/p/69833.html