php+MySQL查询 mysql_num_rows总是返回0,实际上有1条数据

$link=mysql_connect("127.0.0.1:3307","root","");
mysql_query("set names 'utf8'");

$db_selected= mysql_select_db("yuancheng1",$link);

$id=$_GET['id'];
// echo $Id;
$sql="select * from xinxi where id='$id'";
//echo $sql;
$result=mysql_query($sql,$link);
// print_r($result);
$count=mysql_num_rows($result);
echo $count;

$sql能打印出来么,是不是变量外面应该加个大括号

select * from xinxi where id='$id' 错了
应该是
select * from xinxi where id=$id

一般来说你的ID不应该是字符类型吧,数值类型不需要加引号

你作了一个错误的查询 ,查询失败,肯定是返回 总行数为0了,你要是有打印错误的话,就会把那个错误显示 出来了