将PHP变量与MySQL列中的值进行比较

时间:2015-08-06 08:29:46

标签: php mysql

只需一点帮助,这是一个非常简单的问题,但它似乎不能正常工作。我只是将变量中的值与sql列中的所有值进行比较。就像我要将用户名输入与sql列中的用户名列表进行比较一样。然而,这仅仅是为了比较存储在该行的列中的项目ID不是已经在使用的项目ID。

我测试了我从sql查询中获取的值,它等于我在输入中输入的项ID。您将在下面看到的是实际测试,看看我回来的ID是否是我正在寻找的ID以及我可以找到该值的行的ID。我得到的结果是

2,000002(这是正确的)这就是我要找的。

$itemId = $_POST['itemId'];


        if($sqlItemId = $dbCon->query("SELECT * FROM CVCinStoreCoins WHERE itemId = '$itemId'")){
            while($data = $sqlItemId->fetch_assoc()){
                printf("<p>%s, %s</p>", $data['id'], $data['itemId']);
                die();
            }

然后我把它拿出来并试图比较变量中的值,该变量是已经存储的相同itemId(000002)。这就是我出错的地方。

我将代码修改为这样,以便进一步测试。看起来很直接但我得到一个FALSE响应,提供后一个echo语句&#34;项目ID未被使用&#34;但它在DB中。我根据我在stackoverflow中读到的内容尝试了几种不同的方法,但没有人给我正确答案。

    $sqlItemId = $dbCon->query("SELECT * FROM CVCinStoreCoins WHERE itemId = '$itemId'");

        if($itemId == $sqlItemId){
                echo "This item id is already in use. \n";
                die();
        } else {
                echo "Item Id is not in use:";
                die();
        }

有一次,我甚至尝试了一段时间语句来在测试之前获取相关值,但这并没有产生正面结果。有什么建议吗?

2 个答案:

答案 0 :(得分:1)

$sqlItemId内,您拥有完整的表格行(如果有的话),而不仅仅是其ID;将SQL更改为计数并检查返回的行数(如果大于0,则表示重复):

$rowsCount = $dbCon->query("
    SELECT COUNT(*)
    FROM CVCinStoreCoins
    WHERE itemId = '$itemId'
");

我不知道$dbCon是什么(Doctrine DBAL?mysqli?)所以我无法告诉你如何使用查询的结果。

答案 1 :(得分:1)

Wy,你不算数,

$result = $dbCon->query("SELECT COUNT(itemId) FROM CVCinStoreCoins WHERE itemId = $itemId");

如果$ result&gt; 0