1
가져 오기 루프에서 세 변수에 바인딩하려고한다는 간단한 쿼리가 있습니다. 불행히도, 처음 두 컬럼을 집어 들고 3 번째 컬럼을 빈 문자열로 남겨 둡니다 ... 나는 어떤 생각을 잃어 버렸습니까?stmt bind_result()가 모든 열을 바인딩하지 않는다
$db = new mysqli("host.com", "username", "password", "db_name");
$q = "SELECT user_id, meta_key, meta_value FROM wp_usermeta WHERE (meta_key='first_name' OR meta_key='last_name') AND meta_value != '';";
$stmt = $db->prepare($q);
$stmt->execute();
$stmt->bind_result($col1,$col2,$col3);
while ($stmt->fetch()) {
echo $col1." - ".$col2." - ".$col3."<br />";
}
출력 :
2 - first_name -
2 - last_name -
5 - last_name -
5 - first_name -
6 - first_name -
6 - last_name -
8 - last_name -
8 - first_name -
9 - first_name -
9 - last_name -
당신은 확인 했나 : 여기
는 작업 코드? 만약 그들이'sql null'이라면, 'meta_value! =' ''는 null을 그 자체를 포함하여 어떤 것과도 같을 수 없으므로이를 통과시킵니다. –
'meta_value'가 NULL일까요? – dan08
필자는 phpmyadmin에서 정확히 동일한 쿼리를 실행했고 모든 데이터를 완벽하게 반환했습니다. 데이터베이스에 확실히 NULL이 아닙니다. – Typel