我是新来的php和试图使登录形式,但它显示了一个错误
查询数据库失败您的sql语法有错误;查看与您的mariadb服务器版本相对应的手册,以了解使用“form signup form where email=”附近的正确语法mail@mail.com'和psw='12345'(第1行)
<?php
$con = mysql_connect("localhost" , "root" , "");
$db = mysql_select_db("jobportal" , $con);
if(!$db)
{
echo mysql_error();
}
if(isset($_POST['login']))
{
$email = $_POST['email'];
$psw = $_POST['psw'];
$query = mysql_query("select * form signup-form where email = '$email'
AND psw = '$psw'") or die ("Failed to query database".mysql_error());
$row = mysql_fetch_array($query);
if($email=="$email" && $psw=="$psw")
header('location:index.php');
}
?>
2条答案
按热度按时间gwo2fgha1#
你的查询有拼写错误
改变
到
你曾经
form
而不是from
zour9fqk2#
有两个错误:
感谢@arun
你曾经
form
而不是from
使用带有-
因此,您需要在这个表名后面加一个记号 ``` .所以你的问题应该是:
或者尝试(使用sql\u mode=ansi\u引号)
op在一个类似的问题中写道,添加数据库名称有帮助,因此您也可以尝试:
(用表的正确数据库名称替换databasename)
请注意:显示的sql查询和代码易受sql注入攻击,这将导致错误和基于无效/错误用户输入的意外行为。
请阅读如何防止php中的sql注入?
从mariadb知识库:标识符名称:
以下字符有效,允许标识符不带引号:
ascii:[0-9,a-z,a-z$](数字0-9,基本拉丁字母,小写和大写,美元符号,下划线)
扩展:u+0080。。u+ffff型
(...)
引号字符
常规引号字符是反勾号字符- ``` ,但如果
ANSI_QUOTES
如果指定了sql\U模式选项,则使用常规双引号-"
也可以使用。