这是创建数据库的CREATE TABLE IF NOT EXISTS `tm_comment` (
`playerID` text NOT NULL,
`message` text NOT NULL,
`color` text NOT NULL,
`fontsize` varchar(3) NOT NULL,
`mode` varchar(2) NOT NULL,
`playTime` varchar(4) NOT NULL,
`date` text NOT NULL
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  这是写入接口的<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php
  $vid = $_POST['playerID'];
  $message =$_POST['message'];
  $color =$_POST['color'];
  $fontsize =$_POST['fontsize'];
  $mode =$_POST['mode'];
  $playtime =$_POST['playTime'];
  $date =$_POST['date'];
$conn=mysql_connect("localhost", "root", "root"); 
mysql_query("set names 'utf8'",$conn); 
mysql_select_db("ultrax",$conn); 
$exec="INSERT INTO `tm_comment` (`playerID`, `message`, `color`, `fontsize`, `mode`, `playTime`, `date`) VALUES ('$vid','$message','$color','$fontsize','$mode','$playtime','$date')"; 
$result=mysql_query($exec,$conn);
mysql_close($conn);
?>  这时读取接口的<?php
header('Content-Type: text/xml;');
$id=$_GET['id'];
$link=mysql_connect("localhost","root","root"); 
mysql_select_db("ultrax", $link);      
$q="SELECT * FROM `tm_comment` WHERE playerID =$id";
mysql_query("SET NAMES utf8");         
$rs = mysql_query($q, $link);                    
if(!$rs){die("Valid result!");}
echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
echo "<information>\n";
while($row = mysql_fetch_row($rs))
echo "<data><playTime>$row[5]</playTime><message fontsize='$row[3]' color='$row[2]' mode='$row[4]'>$row[1]</message><times>$row[6]</times></data>\n";   
echo "</information>";
mysql_free_result($rs);                    
?>
现在有个问题,我的接口能写进数据但是就是读取不了(数据库IP,用户名,密码,数据库的库名我都没写错)

解决方案 »

  1.   

    mysql_fetch_rowID有值吗把SQL语句打印出来,值行一下,有值没有有值的话试试这样$row[5] 把你们的数子换成对应的字段名 $row['playTime']; 试试呢
      

  2.   

    $id=$_GET['id'];
    这里不可能获取id的 因为你的数据库根本就不存在id这个列
      

  3.   

    $q="SELECT * FROM `tm_comment` WHERE playerID ='$id'";因为 `playerID` text NOT NULL,
      

  4.   

    正解 id怎么设成text? 用INT吧。。