mysql varchar字段作为整数返回

时间:2015-10-03 15:16:59

标签: php mysql ajax

我试图通过向服务器发送ajax请求从数据库获取联系人详细信息,从服务器获取数据库中的详细信息。由于某种原因,它返回整数,但一个字段为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);
    });

1 个答案:

答案 0 :(得分:1)

无效的查询字符串语法以及不正确的连接方式。

改变这个:

$sql = "SELECT cdType, cdDetail FROM tbcontactdetails WHERE User_ID = $user";

到此:

$sql = "SELECT cdType, cdDetail FROM tbcontactdetails WHERE User_ID = '$user'";

在此之前删除while

while($row = $result->fetch_assoc()) 

到此:

$row = $result->fetch_assoc();

或者给出正确的开合括号:

while($row = $result->fetch_assoc()) { /* your code */ } 

而且:

 $json += $row['cdDetail'];

到此:

 $json .= $row['cdDetail'];

PHP Manual: Assignment Operators