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”
。只有在使用单引号时,才能使用串联。例如:
“一些文本”$可变名称。”一些文本“