入门php在mysql中查询数据

数据库中有张表有主键pmcode还有其他属性,我现在想通过pmcode判断某个用户是否存在,存在的话将其信息取出,代码如下:

 //拆分发来的信息得到会员卡号
            $arry=explode("+",$form_Content);
            $memberid =$arry[1];

              //连接数据库
            $link=mysql_connect(SAE_MYSQL_HOST_M.':'.SAE_MYSQL_PORT,SAE_MYSQL_USER,SAE_MYSQL_PASS);
               if($link) {
                   mysql_select_db(SAE_MYSQL_DB,$link); 
                   //查询数据
                   $result1=mysql_query("select * from numbers where pmcode = '".$memberid."';");

                 $num_result = mysql_num_rows($result1);
                   if($num_result==1){
                       //   $row= $result1->fetch_assoc();
                       $row=mysql_fetch_row($result1);
                        $result_str="您的会员--信息如下:\n\n卡号:$row[pmcode].\n姓名:.$row[names].\n等级:.$row[4].\n积分:$a[5]";
                         $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType,$result_str); 
                        echo $resultStr;                  
                         exit;
                   }else{
                     $msgType = "text";
                    $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType,"--select * from numbers where pmcode = '".$memberid."'");  
                    echo $resultStr;                  
                    exit;

                   }

        }   else{
             echo "连接数据库失败".mysql_error;
            }            
               mysql_close($link);
        }

可是不管怎样测试都取不到数据,求大神修改。

该回答引用ChatGPT

在代码中存在一些问题,需要修改和优化。以下是需要注意的几点:

  • 需要确认数据库连接是否成功,可以使用 mysql_error() 函数输出错误信息。如下所示:

    $link = mysql_connect(SAE_MYSQL_HOST_M.':'.SAE_MYSQL_PORT, SAE_MYSQL_USER, SAE_MYSQL_PASS);
    if(!$link) {
      die('连接数据库失败:'.mysql_error());
    }
    
  • 需要确认是否选择了正确的数据库,可以使用 mysql_select_db() 函数输出错误信息。如下所示:

    if(!mysql_select_db(SAE_MYSQL_DB, $link)) {
      die('选择数据库失败:'.mysql_error());
    }
    
  • 在查询数据之前,需要确认是否成功执行了 SQL 语句,可以使用 mysql_error() 函数输出错误信息。如下所示:

    $sql = "SELECT * FROM numbers WHERE pmcode = '".$memberid."'";
    $result1 = mysql_query($sql);
    if(!$result1) {
      die('执行 SQL 语句失败:'.mysql_error());
    }
    
  • 当查询到数据时,需要确认查询到的数据是否为一条,可以使用 mysql_num_rows() 函数获取查询结果的行数。如下所示:

    $num_result = mysql_num_rows($result1);
    if($num_result == 1) {
      // ...
    } else {
      // ...
    }
    
  • 在取出查询结果时,可以使用 mysql_fetch_assoc() 函数获取关联数组,或者使用 mysql_fetch_row() 函数获取索引数组。如下所示:

    $row = mysql_fetch_assoc($result1);
    // 或者
    $row = mysql_fetch_row($result1);
    
  • 在构造 SQL 语句时,需要注意字符串的引号问题,可以使用双引号和单引号交替使用。如下所示:

    $sql = "SELECT * FROM numbers WHERE pmcode = '".$memberid."'";
    // 或者
    $sql = 'SELECT * FROM numbers WHERE pmcode = "'.$memberid.'"';