就是用PHP连接mysql数据库后再查询数据
$conn=mysqli_connect("localhost","root","469201743","my_DB"); 
$conn->query('set names gb2312');
if(empty($conn))
{ die("数据库连接失败");
}
$sql= "SELECT username,phone,qq,email FROM user WHERE username = $name";
$result=$conn->query($sql);
if($row = $result->fetch_row())
这样能从数据库中正确显示所需内容

解决方案 »

  1.   

    然后我想再去另一表查询数据 $name是一个已经赋值的变量
    $sqls= "SELECT username,phone,qq,email FROM user WHERE username = $name";
    $results=$conn->query($sql); 
    if($rows = $result->fetch_row())
    但是此处就始终报错
    Fatal error: Call to a member function fetch_row() on a non-object in 
    D:\wampserver\wamp\www\LAF\xunwu_Msg.php on line 116
      

  2.   

    如果我把前面的查询删除了,后面这个查询仍然能正常执行,为什么查询两次就不行了呢?
    我试过用$result->free_result(); $conn->close();来把前面的查询和连接释放掉,再重新建立连接还是不行啊!求解求解啊!!!!!!
      

  3.   

    $sqls= "SELECT username,phone,qq,email FROM user WHERE username = $name";
    $results=$conn->query($sql); 另外你的SQL 语句不都是查询同个表吗?
    SELECT username,phone,qq,email FROM user WHERE username = $name同时这个查询语句的 $name 不应该是 username='$username';?
    如果这些是临时的手误 那么给出完整的代码.
      

  4.   

    不好意思  前面那个是这样的
    <?php
    $msgID = $_GET['msgID'];
    include ('class\conndb.php');
    $sql= "SELECT msgID,title,pic,reletime,description,place,dplace,date,username FROM lostMsg WHERE msgID= $msgID ORDER BY msgID DESC"; $result=$conn->query($sql);
        if($row = $result->fetch_row())
    ?>后面那个是这样的
    <?php
        include ('class\conndb.php');
    $sql1= "SELECT username,phone,qq,email FROM user WHERE username = $name";

    $result1=$conn->query($sql1);

         if($row1 = $result1->fetch_row())
    ?>
      

  5.   


    <?php
    $msgID = $_GET['msgID'];
    include ('class\conndb.php');
    $sql= "SELECT msgID,title,pic,reletime,description,place,dplace,date,username FROM lostMsg WHERE msgID= $msgID ORDER BY msgID DESC";$result=$conn->query($sql);
        if($row = $result->fetch_row())
    ?>后面那个是这样的
    <?php
        include ('class\conndb.php');
    $sql1= "SELECT username,phone,qq,email FROM user WHERE username = $name";$result1=$conn->query($sql1);     if($row1 = $result1->fetch_row())
    ?>
      

  6.   

    $sql1= "SELECT username,phone,qq,email FROM user WHERE username = '$name'";单引号是绝对不能少的出错了,就应该复制粘贴原始代码
    似你这般重打一遍,现场不就破坏了吗?题外话,你把数据库操作封装成了类,却又不在类中做错误处理。这得流“泪”了
      

  7.   

    这个必须给出来啊
    include ('class\conndb.php');
      

  8.   

    我真是拙计啊,他是这样的
    <?php
    $conn=mysqli_connect("localhost","root","469201743","my_DB");
        $conn->query('set names gb2312');
        if(empty($conn))
    {
       die("数据库连接失败");
    }
    ?>
      

  9.   


    额,确实拙计了,当时弄得有点混乱。我不加单引号它都能分别查询出结果啊,就是同时存在就不行了,不过题外话挺重要,饿哦之前就是没搞懂msqli_connect连接和mysql_connect之间区别,就随便用的一个,然后发现有的要用$result=mysql_query($sql,$conn),有的要用$result=$conn->query($sql)之类的,其实还是不怎么清楚。我知道看人家代码很蛋疼,还望赐教!
    这就是现场了<?php
    $msgID = $_GET['msgID'];
    <?php
    $conn=mysqli_connect("localhost","root","469201743","my_DB");
        $conn->query('set names gb2312');
        if(empty($conn))
         {
       die("数据库连接失败");
    }
       $sql= "SELECT msgID,title,pic,reletime,description,place,dplace,date,username FROM lostMsg WHERE msgID= $msgID ORDER BY msgID DESC"; $result=$conn->query($sql);
        if($row = $result->fetch_row())
    ?>
    <div id="picture">
    <img src =" <?php echo $row[2];?>" height ="180" width="180" />

    <?php
    $name =$row[8];
    $result->free_result();
    $conn->close();
    ?>
    </div>
    &nbsp;&nbsp;&nbsp信息标题:<?php echo $row[1];?><br/><br/>
    &nbsp;&nbsp;&nbsp发布时间:<?php echo $row[3];?><br/>
    &nbsp;<div style="font-size: 12pt;font-weight: bold ;">基本资料</div></br>
     &nbsp;&nbsp;&nbsp详细描述:<?php echo $row[4];?><br/><br/>
    &nbsp;<div style="font-size: 12pt;font-weight: bold ;">丢失地点</div></br>
     &nbsp;&nbsp;&nbsp所属区域:<?php echo $row[5];?><br/><br/>
     &nbsp;&nbsp;&nbsp详细地点:<?php echo $row[6];?><br/><br/>
     &nbsp;<div style="font-size: 12pt;font-weight: bold ;">丢失时间</div><?php echo $row[7];?></br>
    &nbsp;<div style="font-size: 12pt;font-weight: bold ;">联系方式</div></br>
       
    <?php
    $sql1= "SELECT username,phone,qq,email FROM user WHERE username = $name";

    $result1=$conn->query($sql1);

         if($row1 = $result1->fetch_row())     //if($rows = mysql_fetch_row($results))
    ?>
     
     &nbsp;&nbsp;&nbsp联系人:<?php echo $row1[0];?><br/><br/>
     &nbsp;&nbsp;&nbsp手机:<?php echo $row1[1];?><br/><br/>
     &nbsp;&nbsp;&nbsp QQ:<?php echo $row1[2];?><br/><br/>
     &nbsp;&nbsp;&nbsp  邮箱:<?php echo $row1[3];?><br/><br/>
    </div>
      

  10.   

    额,还有一定啊就是 $result->free_result();
        $conn->close();这两句开始是没有的,后来我加上想释放掉,然后后面又重新连接数据库(上面没显示出来),还是不行
      

  11.   

    先把第二个查询中的$name条件部分去掉,看能运行正常吗?
      

  12.   

    还是不行额一样的错 反正一直说这句话有错
     if($row1 = $result1->fetch_row())
      

  13.   

    $sql1= "SELECT username,phone,qq,email FROM user WHERE username = $name";
    中的 $name 要用单引号括起来!
    $sql1= "SELECT username,phone,qq,email FROM user WHERE username = '$name'";
    要说多少遍才能懂?!
      

  14.   


    啊啊啊 !!!你不知道我有多激动,就这一点从昨天纠结到现在,我承认我笨啊,十分感谢!
    顺便再请教一下,为什么这里要加单引号?第一个查询语句中变量$msgID也是外面赋值的变量啊,为什么那个不加可以呢?第二个又必须加呢?
      

  15.   

    你好 再请教个问题,我通过表单上传一张图片
    <input type="file" name="picfile" value="" style="width:300px;"/>
    从会话中取出$pic=$_POST['picfile'];
    然后插入到数据库中时,为什么数据库中显示是这样的,没有斜杠,
    D:wampserverwampwwwLAFpic自行车.jpg
    这样读取的时候就不能显示出图片
    应该怎么做呢
      

  16.   

    为什么 $name 要加引号?
    因为 username 是字符类型
    为什么 $msgID 不需要加引号?
    因为 msgID 是数值类型我怎么知道的?
    你没加,出错了$pic=$_POST['picfile'];
    应为
    $pic=$_FILES['picfile'];手册中说的很清楚了手册不是教科书,不会教你怎么做(简单的示例还是有的)
    手册是工具书,那么都东西神仙才能记得住。记不住时就得翻一翻