【问题标题】:Checking SQL Database for value检查 SQL 数据库的值
【发布时间】:2018-01-22 22:16:37
【问题描述】:

我正在尝试使用 php 检查我的数据库以查看是否存在值。我的主要目标是使用这个值

$_GET['UDID']

如果它等于数据库中的任何值,它将返回

echo 'FOUND';

我正在使用此代码:

<?php

$servername = "*****";
$username = "*****";
$password = "*****";
$dbname = "*****";
$connect = new mysqli($servername, $username, $password, $dbname);
if ($connect->connect_error) {
    die("CONNECTION FAILED: " . $connect->connect_error);
}

$udid = $_GET['UDID'];
$id = mysqli_real_escape_string($connect, $udid);

$result = mysqli_query($connect, "SELECT udid FROM data WHERE udid = '$id'");

if($result === FALSE) {
   die("ERROR: " . mysqli_error($result));
}
else {
    while ($row = mysqli_fetch_array($result)) { 
          if($row['udid'] == $udid) {
              $results = 'Your device is already registered on our servers.';
              $results2 = 'Please click the install button below.';
              $button = 'Install';
              $buttonlink = 'https://**link here**';
          }
          else {
              $results = 'Your device is not registered on our servers';
              $results2 = 'Please click the request access button below.';
              $button = 'Request Access';
              $buttonlink = 'https://**link here**';
          }
    }
}

?>

但由于某种原因它无法正常工作,我确信我正在寻找一些东西。非常感谢您的帮助。

【问题讨论】:

    标签: php html sql database mysqli


    【解决方案1】:

    试试这个:

    $sql = mysqli_query($connect, "SELECT udid FROM data WHERE udid = '" .$udid. "'");
    

    另外,确保将值从 'GET' 设置为 $udid。应该是这样的:

    $udid = $_GET['UDID'];
    

    我们可以使用 mysqli_fetch_array() 来获取结果行。我还包括错误处理。现在您的代码必须如下所示:

    $udid = $_GET['UDID'];
    $id = mysqli_real_escape_string($connect, $udid);
    
    $result = mysqli_query($connect, "SELECT `udid` FROM `wmaystec_WMT-SS`.`data` = '$id'");
    
    if($result === FALSE) {
       die(mysqli_error("error message for the user")); //error handling
    }
    else {
        while ($row = mysqli_fetch_array($result)) { 
              echo "FOUND :" .$row['thefieldnameofUDIDfromyourDB'];
        }
    }
    

    【讨论】:

    • $udid=mysqli_real_escape_string($connect,$_GET['UDID']);
    • @Jixone OK.... 上面的代码现在可以工作,但现在我需要它来检查它是否存在以及它是否确实做了什么。我更新了问题代码。
    • @WillMays 我的代码是否显示了正确的结果?
    • @Jixone 是的。它显示了正确的结果,现在需要让底部工作。我将它添加到我的问题代码中。
    • @WillMays 现在,您只需将 if 条件移动到 while 循环内,在找到的结果的回声下。
    【解决方案2】:

    我建议你先转义字符串,使用mysqli_real_escape_string 函数,然后调用SQL 查询。

    $udid = mysqli_real_escape_string($connect, $udid);
    $sql = mysqli_query($connect, "SELECT udid FROM data WHERE udid = '$udid'");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-31
      • 2011-03-18
      • 1970-01-01
      • 2019-11-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多