-1

我试图做的是检查表中是否存在值。如果不存在,则应显示失败消息

   $mysqli = new mysqli("localhost","root","", "myusers");
    print($string);
    if ($mysqli->connect_errno) {
        printf("Failed1");
        exit();
    }

    else
    {
    if ($result=$mysqli->query("SELECT 1 FROM `users` WHERE `k1`='$string' AND 'k2'='$string2'"))
    {

    if($result->num_rows == 0)
    {
    printf("Failed2");
    }

尽管值存在于表中,但此查询始终返回 Failed2。问题是什么,该表有三个值 k0、k1 和 k2,但我只使用 k1 和 k2 进行 SELECT 查询。请帮助

编辑:

我已经通过删除 ' 更改了您建议的代码,但现在查询将不会执行,并将导致 Failed3

<?php  

$string1=$_POST['value1'];
$string2=$_POST['value2'];
$mysqli = new mysqli("localhost","root","", "myusers");
print($string);
if ($mysqli->connect_errno) {
    printf("Failed1");
    exit();
}

else
{
    if ($result=$mysqli->query("SELECT 1 FROM `users` WHERE k1='$string1' AND k2='$string2'"))
    {    
        if($result->num_rows == 0)
        {
            printf("Failed2");
        }
        else
        {
            //---------
        }
    }
    else
    {
         printf("Failed3");
    } 
}




?>
4

3 回答 3

3

在这里打错字:

您使用's 而不是反引号!

`k1`='$string' AND 'k2'='$string2'"
 ------------------^--^---------------- You have used single quotes!

将其替换为:

SELECT 1 FROM `users` WHERE `k1`='$string' AND `k2`='$string2'
于 2012-12-10T17:14:22.467 回答
0

从表和列名中删除反引号和引号,即

SELECT 1 FROM users WHERE  k1 ='$string' AND k2='$string2'
于 2012-12-10T17:13:42.930 回答
-1

除非你有一个名为 1 的列。你不想Select 1 from users

这将只返回一个结果,如果那是你要找的

SELECT * FROM `users` WHERE `k1`='$string' AND `k2`='$string2' LIMIT 1
于 2012-12-10T17:18:44.273 回答