数据库中有张表有主键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.'"';