在PHP PDO中获取查询

时间:2016-08-31 22:45:08

标签: php mysql sql pdo

我有这个PHP代码,

$result = $Db->query("SELECT DISTINCT matkul_mahasiswa.nim, matkul_mahasiswa.kode_matkul, 
                      nilai.nim, nilai.kode_matkul, nilai.nilai, nilai.kode_ta, nilai.status_nl
                      FROM matkul_mahasiswa 
                      JOIN nilai
                        ON matkul_mahasiswa.nim = nilai.nim AND matkul_mahasiswa.kode_matkul = nilai.kode_matkul
                     WHERE nilai.kode_matkul = '$kdmk' AND nilai.status_nl = '1' AND nilai.kode_ta = '$kdta'");

然后我尝试用PDO获取它,并回显结果

$data = $result->fetch(PDO::FETCH_ASSOC);

echo $data['nim']; 
echo $data['nilai'];

但没有,没有任何表现。 我在phpmyadmin上尝试了查询,它运行正常

那么,怎么了?我在这里想念什么?

谢谢b4。

1 个答案:

答案 0 :(得分:2)

试试这个(我改变了一下你的方法并添加了准备好的语句,因为你只是要求SQL注入)。

$stmt= $Db->prepare("SELECT DISTINCT matkul_mahasiswa.nim AS matkul_mahasiswa_nim, matkul_mahasiswa.kode_matkul, nilai.kode_matkul, nilai.nilai, nilai.kode_ta, nilai.status_nl FROM matkul_mahasiswa JOIN nilai ON matkul_mahasiswa.nim = nilai.nim AND matkul_mahasiswa.kode_matkul = nilai.kode_matkul WHERE nilai.kode_matkul = :kdmk AND nilai.status_nl = '1' AND nilai.kode_ta = :kdta");
$stmt->bindValue(':kdmk', $kdmk);    
$stmt->bindValue(':kdta', $kdta);
$stmt->execute();

while($row = $stmt->fetch()) 
{
    $out[] = $row;
}

return $out;