我在MySql数据库中有一个表,我用fetch_array()
通过php mysqli预编译语句在一行中选择所有内容。其中一个字段是路径(具有正斜杠'/'
的unix系统样式),但是出现的是在每个正斜杠之前带有反斜杠的路径,如:'\/'
。
具体来说,我使用的代码如下:
$query = "SELECT * FROM `info` WHERE ID = ?";
...
$stmt->bind_param('s', $id);
$stmt->execute();
$res = $stmt->get_result();
while($row = $res->fetch_array(MYSQLI_ASSOC)) {
array_push($info, $row);
}
$stmt->close();
echo json_encode($info);
结果如下:
[{"ID":"a_1338","dir":"\/home\/desktop\/fol\/folid",...}]
虽然最初的路径是这样的:
'/home/desktop/fol/folid'
问题在于我使用select dir from...
并使用fetch()
得到了正确的结果,但这不适合我,因为我想用其键值对来获取所有内容。
有什么想法吗?
答案 0 :(得分:0)
你可以在将斜杠推入数组之前删除斜杠
while($row = $res->fetch_array(MYSQLI_ASSOC)) {
$row = stripslashes($row);
array_push($info, $row);
}
答案 1 :(得分:-1)
您可以使用此代码将表格中的所有内容转换为数组。
$stmt->execute();
$meta = $stmt->result_metadata();
while ($field = $meta->fetch_field()) {
$params[] = &$row[$field->name];
}
call_user_func_array(array($stmt, 'bind_result'), $params);
while ($stmt->fetch()) {
foreach($row as $key => $val) {
$c[$key] = $val;
}
$contents[] = $c;
}
使用此代码,您可以查看$内容,并使用$ content [' dir#39;]
获取目录foreach ($contents as $content) {
echo $content['dir']
}