PHP没有将LONGTEXT字段从我的数据库表推送到我的数组

时间:2018-04-07 15:13:59

标签: php mysql

我有一个MySQL表,其字段为LONGTEXT

$sql = "SELECT * FROM openings WHERE  shortlisted = 'NO' ORDER BY fullName asc";
$result = $conn->query($sql); 
if ($result->num_rows > 0) {
    $final[] = array( 
        "status" => "200", 
        "message" => "Applicants information fetched successfully"
    );
    foreach ($result as $row) { 
        $cv = $row['cover_letter'];
        $final[]= array ( 
            "coverletter" => $cv 
        );
    }
    echo json_encode($final);
}

但如果我将此行"coverletter" => $cv更改为"coverletter" => gettype($cv)

,则无法回复

我收到String类型的响应。

2 个答案:

答案 0 :(得分:0)

我认为你在代码中犯了错误。

试试这个

$sql = "SELECT * FROM openings WHERE  shortlisted = 'NO' ORDER BY 
fullName asc";
$result = $conn->query($sql); 
if ($result->num_rows > 0){
     $final[] = array( 
    "status" => "200", 
    "message" => "Applicants information fetched successfully" 
     );
     while ($row = mysql_fetch_assoc($result))  
    {
       $cv = $row['cover_letter'];
       $final[]= array ( 
       "coverletter" => $cv 
                  );
    }
    echo json_encode($final);
 }

我已经更新了代码,因为在你的代码中你没有获取结果,尽管你直接试图得到结果obj上的行是错误的。

答案 1 :(得分:0)

来晚了……但是我遇到了类似的问题,我通过 AJAX 调用 PHP 脚本来检索数据库信息并将其推送到网页。但是,只要我包含长文本字段,查询就会失败。

在网上搜索后我发现了这个问题,这与字符编码有关。只需在我的 SELECT 语句后添加以下行即可立即解决问题:

mysqli_query($db_conn, 'SET CHARACTER SET utf8');

希望这对某人有所帮助!