【问题标题】:How to check if value already exists in MySQL database [duplicate]如何检查MySQL数据库中是否已存在值[重复]
【发布时间】:2011-12-22 08:10:08
【问题描述】:

可能重复:
How do I update if exists, insert if not (aka upsert or merge) in MySQL?

我知道这是非常基本的.. 但由于某种原因这对我不起作用。我有一个存储 Facebook 用户 ID 的表单,以检查他们是否已经提交了表单。我有将用户 ID 提交到数据库中的表单完美运行。它只是检查数据库中是否存在用户 ID 值的这一部分,这让我很不爽。

这是我的代码....

$user_id = 1234567890;

$checkUserID = mysql_query("SELECT fbUserID from submissions WHERE fbUserID = '$user_id'");

if ($checkUserID) {
echo "GTFO BRO";
} 

每当我对 $checkUserID 变量执行“回显”时,我都会返回此值..“资源 id #9”

【问题讨论】:

  • 试试if (mysql_num_rows($checkUserID)>0)
  • Cba 要完整回答,所以只是对我的评论。但是您正在做的是运行查询。 any 查询的响应始终是资源。 (使用 mysql_ 时)。然后,您需要从该查询中获取行或获取该查询中的行数。此外,不要使用 mysql_。太可怕了。使用 PDO。
  • @ComFreak 谢谢,我会试一试!
  • @ComFreek 哇哦!那行得通!谢谢!

标签: php mysql database


【解决方案1】:

mysql_query 返回一个包含查询结果的资源,你需要这样使用:

$user_id = 1234567890;

$checkUserID = mysql_query("SELECT fbUserID from submissions WHERE fbUserID = '$user_id'");

if (!$checkUserID) {
    die('Query failed to execute for some reason');
}

if (mysql_num_rows($checkUserId) > 0) {
    echo "User id exists already.";
    $user = mysql_fetch_array($checkUserId);
    print_r($user); // the data returned from the query
}

【讨论】:

    【解决方案2】:

    我认为你的查询字符串是错误的。如果您使用双引号,则必须将其更改为

    .... WHERE fbUserId = '{$user_id}'"
    

    或者你必须连接它

    ..... WHERE fbUserId = '" . $user_id . "'"
    

    【讨论】:

    • 连接成查询字符串只是询问SQL注入问题。
    【解决方案3】:

    试试下面的代码:

    $checkUserID = mysql_query("SELECT fbUserID from submissions WHERE fbUserID = '$user_id'");
    
    while($test = mysql_fetch_array($checkUserID))
    
    if ($test ) {
    echo "GTFO BRO";
    }
    

    我希望这对你有用..

    【讨论】:

      猜你喜欢
      • 2021-10-10
      • 2016-03-01
      • 2018-03-05
      • 1970-01-01
      • 2012-01-26
      • 1970-01-01
      • 1970-01-01
      • 2020-07-15
      • 2012-07-02
      相关资源
      最近更新 更多