Php mysql varchar字段以整数形式返回
我试图通过向服务器发送ajax请求,从数据库中获取联系人详细信息,服务器从数据库中获取详细信息。出于某种原因,它返回整数,但一个字段是Php mysql varchar字段以整数形式返回,php,mysql,ajax,Php,Mysql,Ajax,我试图通过向服务器发送ajax请求,从数据库中获取联系人详细信息,服务器从数据库中获取详细信息。出于某种原因,它返回整数,但一个字段是tinytext,另一个字段是varchar。请帮忙 这是我的密码: $user = $_GET['user']; $json = '{"details":['; $sql = "SELECT cdType, cdDetail FROM tbcontactdetails WHERE User_ID = $user"; $result = $conn->que
tinytext
,另一个字段是varchar
。请帮忙
这是我的密码:
$user = $_GET['user'];
$json = '{"details":[';
$sql = "SELECT cdType, cdDetail FROM tbcontactdetails WHERE User_ID = $user";
$result = $conn->query($sql);
if(gettype($result) == 'object') {
if($result->num_rows > 0) {
while($row = $result->fetch_assoc())
$json += $row['cdDetail'];
$json += ']}';
echo gettype($json);
}
}
else
echo $conn->error;
如您所见,我返回$json的数据类型,它返回整数,cdType是tinytext
,cdDetail是varchar
大小50
这是我的ajax请求,我不认为问题在于此,因为它工作可靠:
$.get("./profileChange.php", {user: ses_user, type: "loadCont"}, function(result) {
alert("Debug: " + result);
});
无效的查询字符串语法以及不正确的连接方式 更改此项:
$sql = "SELECT cdType, cdDetail FROM tbcontactdetails WHERE User_ID = $user";
为此:
$sql = "SELECT cdType, cdDetail FROM tbcontactdetails WHERE User_ID = '$user'";
$row = $result->fetch_assoc();
$json .= $row['cdDetail'];
在此之前,请在期间删除:
while($row = $result->fetch_assoc())
为此:
$sql = "SELECT cdType, cdDetail FROM tbcontactdetails WHERE User_ID = '$user'";
$row = $result->fetch_assoc();
$json .= $row['cdDetail'];
或提供正确的开启和关闭支架:
while($row = $result->fetch_assoc()) { /* your code */ }
这是:
$json += $row['cdDetail'];
为此:
$sql = "SELECT cdType, cdDetail FROM tbcontactdetails WHERE User_ID = '$user'";
$row = $result->fetch_assoc();
$json .= $row['cdDetail'];
其中User\u ID=$User
是一个字符串而($row=$result->fetch_assoc())
一个缺少的{
和}
可能?您正在通过执行$json+=
将其转换为整数。您需要更改为$json.=
。看看看看+=
和=
之间的区别现在我觉得自己很愚蠢,我没有意识到这一点