0

当我编写下面给出的代码时,运行良好

public  function Sidenews(){
        $sql = "SELECT * FROM news WHERE id <> 1 ORDER BY id ASC";
        $result_array=self::find_by_sql($sql);
        array_shift($result_array);
        return !empty($result_array) ? $result_array : false;
}

但是当我尝试编写下面给出的这段代码时它不起作用为什么?谁能告诉我

public  function Sidenews(){
        $sql = "SELECT * FROM news WHERE id <> 1 ORDER BY id ASC";
        $result_array=self::find_by_sql($sql);
        return !empty($result_array) ? array_shift($result_array) : false;
}

在这种情况下,我面临着这个错误,注意:尝试获取非对象的属性。

4

1 回答 1

0

如果你的 sql 返回 ie。3行,我们在上述情况下还有其他结果

情况1。

$result_array=array(
     array('colum' => 'value1'), array('column' => 'value2'), array('column'=>'value3')
);
array_shift($result_array);
//now your result array is shorter, because first row was removed
var_dump(!empty($result_array) ? $result_array : false);

输出:

array(2) {
  [0]=>
  array(1) {
    ["column"]=>
    string(6) "value2"
  }
  [1]=>
  array(1) {
    ["column"]=>
    string(6) "value3"
  }
}

说明:您删除第一行,检查结果是否有更多行并返回其余(行集)

案例 2。

//$result_array=self::find_by_sql($sql);
$result_array=array(
     array('colum' => 'value1'), array('column' => 'value2'), array('column'=>'value3')
);
var_dump(!empty($result_array) ? array_shift($result_array) : false);

输出:

array(1) {
  ["colum"]=>
  string(6) "value1"
}

说明:您检查是否有任何行并返回第一行(未设置,只是单行)

于 2013-10-20T11:20:21.563 回答