【发布时间】:2014-05-13 09:41:17
【问题描述】:
我正在尝试从 DB 表构建 JSON,我需要在 json_encode() 之前使用 utf8_encode()。我犯了这个错误。 这是一个代码。我做错了什么?
<?php
$db = new PDO('mysql:host=MY_HOST;dbname=MY_DB;charset=UTF-8',
'MY_LOGIN', 'MY_PASS', array(
PDO::ATTR_EMULATE_PREPARES => false,
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
)
);
$stmt = $db->prepare(
"SELECT id,title,`fulltext`,catid,publish_state FROM items WHERE id>:id"
);
$stmt->bindValue(':id', 2000, PDO::PARAM_STR);
$stmt->execute();
$output_arr = $stmt->fetchAll(PDO::FETCH_ASSOC);
//FOR TEST ONLY
echo 'Output:<br />';
print_r ($output_arr); //prints OK if I remove line 21 (below)
//BEFORE ENCODING TO JSON I NEED TO ENCODE TO UTF-8...
$output_encoded = array_walk(utf8_encode, $output_arr);
//AND NOW I GOT ERROR:
//Only variables can be passed by reference in line 21
//MY NEXT STEP WOULD BE:
echo json_encode($output_encoded)
?>
【问题讨论】:
-
array_walk返回布尔值