PHP我怎样才能做多个where条件?
这是我当前用于让用户登录的代码:PHP我怎样才能做多个where条件?,php,where-clause,Php,Where Clause,这是我当前用于让用户登录的代码: <?php $uName = ""; $uNameMsg = ""; $pWord = ""; $pWordMsg = ""; if(isset($_POST["submit"])){ $uName = $_POST["username"]; if (empty($uName)) { $uNameMsg = "please enter a username<br/>"; } $pWord =
<?php
$uName = "";
$uNameMsg = "";
$pWord = "";
$pWordMsg = "";
if(isset($_POST["submit"])){
$uName = $_POST["username"];
if (empty($uName)) {
$uNameMsg = "please enter a username<br/>";
}
$pWord = $_POST["password"];
if (empty($pWord)) {
$pWordMsg = "please enter a password<br/>";
}
}
?>
//form goes here
<?php
require_once("conn.php");
$sql = "SELECT username, password FROM customers
WHERE username = $uName
AND password = $pWord";
$results = mysqli_query($conn, $sql)
or die ('Problem with query' . mysqli_error($conn));
if (mysqli_num_rows($results) < 1) {
echo "invalid username and password";
} else {
echo "query success, redirect header goes here";
}
?>
//表格在这里
我得到一个语法错误,说'AND password='子句是错误的。然后它说错误在第3行,我的标签,而'and password='在第75行
这是我的代码从第1行开始:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Customer Login</title>
<link rel="stylesheet" href="customerlogin.css">
</head>
客户登录
您的变量字符串在SQL语句中连接错误,请尝试下面的语句,而不是查询代码行
$sql = "SELECT username, password FROM customers
WHERE username = '".$uName." '
AND password = '".$pWord."'";
SQL语句中的变量字符串连接错误,请尝试下面的语句,而不是查询代码行
$sql = "SELECT username, password FROM customers
WHERE username = '".$uName." '
AND password = '".$pWord."'";
在php中更改查询,如下所示
$sql = "SELECT username, password FROM customers
WHERE username = '{$uName}'
AND password = '{$pWord}'";
我假设username是一个字符串,所以需要使用
'
将您在php中的查询更改为字符串,如下所示
$sql = "SELECT username, password FROM customers
WHERE username = '{$uName}'
AND password = '{$pWord}'";
我假设username是一个字符串,因此需要使用
'
将查询更改为以下内容:
$sql = "SELECT username, password FROM customers WHERE username = '$uName ' AND password = '$pWord'";
传递字符串值时,应使用引号括起来。如下更改查询:
$sql = "SELECT username, password FROM customers WHERE username = '$uName ' AND password = '$pWord'";
当你传递字符串值时,你应该用引号括起来。你可以用这个。这肯定会有用的:
$sql = "SELECT username, password FROM customers
WHERE username = '$uName'
AND password = '$pWord'";
你可以用这个。这肯定会有用的:
$sql = "SELECT username, password FROM customers
WHERE username = '$uName'
AND password = '$pWord'";
您没有在值周围引用
”
。您只能使用不带引号的数字,因为值字符串应该带引号。您的查询易受sql注入攻击,因此请转义字段或使用pdo。请参阅下面的转义字段代码
$pWord = $conn->real_escape_string($pWord);
$uName = $conn->real_escape_string($uName);
$sql = "SELECT username, password FROM customers
WHERE username = '$uName'
AND password = '$pWord'";
您没有在值周围引用
”
。您只能使用不带引号的数字,因为值字符串应该带引号。您的查询易受sql注入攻击,因此请转义字段或使用pdo。请参阅下面的转义字段代码
$pWord = $conn->real_escape_string($pWord);
$uName = $conn->real_escape_string($uName);
$sql = "SELECT username, password FROM customers
WHERE username = '$uName'
AND password = '$pWord'";
共享第3行中显示的代码。还可以像下面这样更改您的查询:
$sql=“选择用户名、来自用户名为“$uName”和密码为“$pWord”的客户的密码”代码>@Karthikeyani这只是我的标签。我来编辑。哦,好的。您是否尝试了该代码?请尝试以下选择用户名、来自用户名为“{$uName}”和密码为“{$pWord}”的客户的密码“
FYI,由于SQL注入漏洞,将用户输入直接放入SQL语句的风险极大。最好使用准备好的语句并绑定变量。共享第3行中的代码。还可以像下面这样更改您的查询:$sql=“选择用户名、来自用户名为“$uName”和密码为“$pWord”的客户的密码”代码>@Karthikeyani这只是我的标签。我来编辑。哦,好的。您是否尝试了该代码?请尝试以下选择用户名、来自用户名为“{$uName}”和密码为“{$pWord}”的客户的密码“
FYI,由于SQL注入漏洞,将用户输入直接放入SQL语句的风险极大。最好使用准备好的语句并绑定变量。单引号应该在双引号内,而不是相反。当在双引号内使用php变量时,不需要连接。您可以简单地传递变量。例如:“某些文本$variableName”
。只有在使用单引号时,才能使用串联。例如:“一些文本”$可变名称。”一些文本“
。单引号应该在双引号内,而不是相反。在双引号内使用php变量时,不需要连接。您可以简单地传递变量。例如:“某些文本$variableName”
。只有在使用单引号时,才能使用串联。例如:“一些文本”$可变名称。”一些文本“
。