[英]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 还请尝试使用
mysqli
或PDO
而不是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.