在PHP中将MySQL记录集转换为JSON字符串
在PHP中是否有一个函数或类可以传递一个MySQL记录集,并且我得到一个返回的JSON字符串,可以在Ajax请求中传递回JavaScript函数?在PHP中将MySQL记录集转换为JSON字符串
是这样的:
function recordSetToJson($recordset) {
while($rs1 = mysql_fetch_row($recordset)) {
for($count = 0; $count < count($rs1); $count++) {
// read and add field to JSON
}
$count++;
}
return $jasonstring
}
这应该工作:
function recordSetToJson($mysql_result) {
$rs = array();
while($rs[] = mysql_fetch_assoc($mysql_result)) {
// you don´t really need to do anything here.
}
return json_encode($rs);
}
如果你需要操作的结果集,你可以使用下面的 - 更复的版本,可以让你添加一个回调函数,将在每条记录上被调用并且必须返回已经处理的记录:
function recordSetToJson($mysql_result, $processing_function = null) {
$rs = array();
while($record = mysql_fetch_assoc($mysql_result)) {
if(is_callable($processing_function)){
// callback function received. Pass the record through it.
$processed = $processing_function($record);
// if null was returned, skip that record from the json.
if(!is_null($processed)) $rs[] = $processed;
} else {
// no callback function, use the record as is.
$rs[] = $record;
}
}
return json_encode($rs);
}
使用它像这样:
$json = recordSetToJson($results,
function($record){
// some change you want to make to every record:
$record["username"] = strtoupper($record["username"]);
return $record;
});
是否有PHP函数或类,我可以通过一个MySQL的记录,我得到一个JSON字符串返回,可以在被传递回JavaScript函数Ajax请求?
是的谢谢。我遇到的麻烦是准备一个包含多个mysql记录集的PHP数组,然后可以对其进行编码。 – 2010-08-07 12:58:53
我刚发现可能有用的东西。 www.barattalo.it/2010/01/25/10-php-usefull-functions-for-mysql-stuff/。 ___但是我无法在JavaScript中引用字段。 – 2010-08-07 13:01:18
如果他想以某种方式操纵结果集,该怎么办? – NullUserException 2010-08-07 13:00:23
塞巴斯蒂安的解决方案似乎工作 – 2010-08-07 13:09:22
@NullUserException他不应该使用这个泛型然后。 – 2010-08-07 13:15:49