【发布时间】:2014-12-31 11:15:42
【问题描述】:
这是 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);
?>
表tmp创建成功,数据插入到tmp表成功但“选择查询”返回null! 实际上 $r 为空 我尝试(LIKE & =)但结果相同
这个查询有什么问题?
编辑:
我什至将查询更改为:
$sql_rank="SELECT * FROM tmp WHERE DID=352136069213581"
并且不再工作:(
坦克
编辑: 正确答案:
tanks to 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;
【问题讨论】:
-
使用
mysqli或PDO代替mysql。 -
你检查过
$d吗? -
$d 是正确的对不起你的意思是它不能和 mysql_ 一起使用?!
-
mysql已弃用 -
首先使用mysql_fetch_assoc($rank, $My_Connection);然后使用 print_r() 进行调试;然后检查你的输出。