php从数据库中选择行

时间:2016-08-10 19:56:06

标签: php mysql phpmyadmin

我有一个名为tbl_stats的数据库,其中包含一列(UUID)和一个用户ID列表。

我正在尝试创建一个脚本,其中http://domain.com/index.php?cid=874365显示的页面只包含该用户行的值。

我当前的代码连接到数据库但始终显示顶行的信息,无论?cid =是什么。

我目前的代码:

<?php
 error_reporting( E_ALL & ~E_DEPRECATED & ~E_NOTICE );
    ob_start();
    session_start();

    define('DB_DRIVER', 'mysql');
    define('DB_SERVER', 'localhost');
    define('DB_SERVER_USERNAME', '[REDACTED]');
    define('DB_SERVER_PASSWORD', '[REDACTED]');
    define('DB_DATABASE', '[REDACTED]');


    $dboptions = array(
                  PDO::ATTR_PERSISTENT => FALSE, 
                  PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, 
                  PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
                  PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8',
                );

    try {
      $DB = new PDO(DB_DRIVER.':host='.DB_SERVER.';dbname='.DB_DATABASE, DB_SERVER_USERNAME, DB_SERVER_PASSWORD , $dboptions);  
    } catch (Exception $ex) {
      echo $ex->getMessage();
      die;
    }

    //get error/success messages
    if ($_SESSION["errorType"] != "" && $_SESSION["errorMsg"] != "" ) {
        $ERROR_TYPE = $_SESSION["errorType"];
        $ERROR_MSG = $_SESSION["errorMsg"];
        $_SESSION["errorType"] = "";
        $_SESSION["errorMsg"] = "";
    }

        try {
           $cid = intval($_GET['cid']);
           $sql = "SELECT * FROM tbl_stats WHERE 1 AND UUID=$cid";
           $stmt = $DB->prepare($sql);
           $stmt->bindValue(":cid", $cid);

           $stmt->execute();
           $results = $stmt->fetchAll();
        } catch (Exception $ex) {
          echo $ex->getMessage();
        }

        ?>

然后引用页面上的信息,我使用以下内容:

<?php echo $results[0]["username"] ?>

2 个答案:

答案 0 :(得分:1)

非常感谢帮助人员!

由于你的管理而得到了解决!

    try {
   $cid = $_GET['cid'];
   $sql = "SELECT * FROM tbl_stats WHERE UUID=:cid";
   $stmt = $DB->prepare($sql);
   $stmt->bindValue(":cid", $cid);

   $stmt->execute();
   $results = $stmt->fetchAll();
} catch (Exception $ex) {
  echo $ex->getMessage();
}

答案 1 :(得分:0)

您需要在SQL语句中添加占位符

       $sql = "SELECT * FROM tbl_stats WHERE UUID=:cid";