无效的sql语句
我正在尝试使用预编码的项目进行实验,该项目位于此链接here之内。无效的sql语句
我使用xampp作为web服务器和mysql。每当我运行具有此代码的验证页时:
<?php include_once("zSessionStart.php");
include_once("zConfig.php");
include_once("zDB.php");
$password = $_REQUEST["password"];
$userID = $_REQUEST["userID"];
$isAdmin = false; //is administrator or not
$askDemo = false;
//authenticate the login data from login.php
$query="select userID, isAdmin, askDemo from $_usersTable where (password= '$password') and (userID='$userID');";
$rs=mysql_query($query) or die ("Invalid sql.");
if (mysql_num_rows($rs) > 0) //correct password
{
$array = mysql_fetch_array($rs);
if(strcmp($array["isAdmin"], "y")==0){
$isAdmin=true;
}
if(strcmp($array["askDemo"], "y")==0){
$askDemo=true;
}
if(!$isAdmin){
$query="select userID from usertests where userID='" . $userID . "'";
$rs2=mysql_query($query) or die ("Invalid sql.");
if(mysql_num_rows($rs2) > 0){ //already take test
$array2 = mysql_fetch_array($rs2);
echo "<h2> You have already taken the task. Please contact your administrator if you " .
" feel you need to re-take this task again.</h2>";
die();
}
}
$_SESSION['userID'] = $array["userID"];
session_unregister('loginErr');
if($isAdmin){
header("Location: transfer.php?" . SID);
}else{
if($askDemo){
header("Location:demo.php?" . SID);
}else{
header("Location: index.php?" . SID);
}
}
}
else
{
$_SESSION['loginErr'] = "true";
header("Location: login.php");
}
mysql_close($db);
?>
我收到一个错误,指出“Invalid sql。”。在我的数据库中,我有一个名为users的表,它具有诸如userID和密码之类的凭证。我已经设置了用户名为admin和密码才能通过。但是,我还没有找到解决问题的方法。
回答:
您的查询无效,因为您使用的错误表名称甚至没有可变语法,即$_usersTable
。而且,您正在用多个分号结束查询,甚至单/双引号没有正确使用。
你需要更新你的选择查询象下面这样来解决此问题:
$query="select userID, isAdmin, askDemo from usersTable where password = '".$password."' and userID ='".$userID."';
我强烈建议你使用的mysqli 预处理语句查询,使之更加安全象下面这样:
$mysqli = mysqli_connect($host, $username, $password, $db); $query = "SELECT userID, isAdmin, askDemo from `usersTable` WHERE userID=?";
$stmt = $mysqli->prepare($query);
$stmt->bind_param("i", $userID);
$stmt->execute();
$res = $stmt->get_result();
$data = $res->fetch_all();
要了解更多信息,请点击链接http://php.net/manual/en/mysqli.prepare.php
以上是 无效的sql语句 的全部内容, 来源链接: utcz.com/qa/259144.html