Ale*_*lex 0 php mysql arrays object
我需要将一个对象$ resultInput视为一个数组(比如$ resultInput被注释掉).但是,当我使用函数对象数组时,我得到一个错误资源ID#5.有什么问题?
require('dbc.php');
mysql_select_db($db);
$resultInput = mysql_query("SHOW COLUMNS FROM about WHERE Field NOT IN ('id', 'created', 'date_modified', 'last_modified', 'update', 'type', 'bodytext') AND Field NOT REGEXP '_image'"); // selects only the columns I want
//$resultInput = array('page_header', 'sub_header', 'content', 'content_short');
function objectToArray($object){
if(!is_object($object) && !is_array($object)){
return $object;
}
if(is_object($object)){
$object = get_object_vars( $object );
}
return array_map( 'objectToArray', $object );
}
// convert object to array
$array = objectToArray( $resultInput );
//show the array
print_r( $array );
Run Code Online (Sandbox Code Playgroud)
您收到此错误是因为mysql_query()返回资源而不是对象.要获取对象,您需要使用其中一个mysql函数将行集检索为对象(即mysql_fetch_object()).但是,您不需要该objectToArray函数,因为您可以使用mysql_fetch_array将行集作为数组获取,如下所示:
$result = mysql_query("...");
$resultInput = mysql_fetch_array( $result);
Run Code Online (Sandbox Code Playgroud)
此外,我相信有人会评论使用现已弃用的mysql功能.但是,为了彻底,你应该考虑使用mysqli或者PDO.
所以你得到了这个输出:
array(12) {
[0] = > string(11)"page_header"
["Field"] = > string(11)"page_header"
[1] = > string(11)"varchar(50)"
["Type"] = > string(11)"varchar(50)"
[2] = > string(3)"YES"
["Null"] = > string(3)"YES"
[3] = > string(0)""
["Key"] = > string(0)""
[4] = > NULL
["Default"] = > NULL
[5] = > string(0)""
["Extra"] = > string(0)""
}
Run Code Online (Sandbox Code Playgroud)
这是在描述该page_header专栏.要只显示所有列的列名,您可以:
$result = mysql_query("..."); $columns = array();
while( $row = mysql_fetch_array( $result) {
$columns[] = $row['Field'];
}
var_dump( $columns);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
860 次 |
| 最近记录: |