简体   繁体   English

PHP和mysql,SELECT查询返回null

[英]PHP and mysql, SELECT query return null

this is PHP code: 这是PHP代码:

<?php
// header('Content-type: application/json');
header('Content-Type: text/html; charset=UTF-8');

$d=$_GET["userid"];

 $servername = "*******";
 $username = "***";
 $password = "****";
 $dbname = "*****";
 $arr = array();

  $My_Connection = mysql_connect ( $servername, $username , $password ) ;
     if ( ! $My_Connection )
       {
           die( ' Could not connect : ' . mysql_error( ) ) ;
       }
    //pick data base
    mysql_select_db ( $dbname, $My_Connection );

    mysql_set_charset('utf8',$My_Connection);

         $sql_tempcreate="CREATE TABLE tmp(id INT(11) UNSIGNED AUTO_INCREMENT PRIMARY KEY,DID VARCHAR(20) NOT NULL)";
         if(mysql_query($sql_tempcreate,$My_Connection))
         {
            $sql_convert="ALTER TABLE tmp CONVERT TO CHARACTER SET utf8";
            mysql_query($sql_convert);

           $sql_inserttotemp="INSERT INTO tmp (DID) SELECT DID FROM user WHERE 1 Order By HIGHSCORE DESC";
                if(mysql_query($sql_inserttotemp,$My_Connection))

                {
                 //***************************************** from here problem start
                    $sql_rank="SELECT * FROM `tmp` WHERE DID =".$d."";//    |
                    $r=mysql_query($sql_rank,$My_Connection);             //    |
                                                                          //    |
                    $rank= $r;                                            //    V
                }//******************************************************** to here

         }
         else
         {
            $rank= array("ERROR","ERROR");
         }
            $output = json_encode(array('top' => $arr,'rank' =>$rank));
            echo ($output);
    }
    else
    {
        echo "there is an error :(";
    }
    mysql_query("DROP TABLE tmp",$My_Connection);
mysql_close($My_Connection); 

?>

table tmp create successfully , data insert to tmp table successfully but "select query" return me null! tmp表创建成功,数据成功插入tmp表,但“选择查询”返回null! actually $r is null i try (LIKE & =)but same result 我实际上尝试$ r为null (LIKE&=)但结果相同

what is wrong with this query? 这个查询有什么问题?

EDIT: 编辑:

i even change the query to: 我什至将查询更改为:

$sql_rank="SELECT * FROM tmp WHERE DID=352136069213581" 

and not working again :( 而不是再次工作:(

tanks 战车

EDIT: correct answer: 编辑:正确答案:

tanks to gaurav kumar this is correct code :D 坦克到gaurav kumar,这是正确的代码:D

$sql_rank="SELECT * FROM `tmp` WHERE DID LIKE ".$d."";
$res=mysql_query($sql_rank,$My_Connection);
$r=mysql_fetch_assoc($res);
$rank= $r;

$d may be a string.So you need to enclose them in quotes (single or doubble) Also trim spaces from $d $d可能是一个字符串,因此您需要将它们括在引号中(单引号或双引号),并从$d删除空格

$d=trim($_GET["userid"]);
$sql_rank="SELECT * FROM `tmp` WHERE DID ='".$d."'";

Also try using mysqli or PDO instead of mysql because mysql_* functions are deprecated 还请尝试使用mysqliPDO而不是mysql因为不建议使用mysql_ *函数

$d=trim($_GET["userid"]);
$sql_rank="SELECT * FROM `tmp` WHERE ID ='".$d."'";

Your Code was like this : $d=$_GET["userid"]; 您的代码是这样的: $d=$_GET["userid"];

$sql_rank="SELECT * FROM `tmp` WHERE DID ='".$d."'";

Not DID use ID 非DID使用ID

Try this: 尝试这个:

 $sql_rank="SELECT * FROM `tmp` WHERE DID =".$d."";
 $r=mysql_query($sql_rank,$My_Connection);
 $rank = mysql_fetch_row($r);

This will give you array of rows so you can fetch like echo $rank[0]; 这将为您提供行数组,以便您可以像echo $rank[0];一样进行获取echo $rank[0];

tanks to gaurav kumar this is correct code :D 坦克到gaurav kumar,这是正确的代码:D

$sql_rank="SELECT * FROM `tmp` WHERE DID LIKE ".$d."";
$res=mysql_query($sql_rank,$My_Connection);
$r=mysql_fetch_assoc($res);
$rank= $r;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM