在本例中,如何将mysql_结果转换为mysqli结果?

在本例中,如何将mysql_结果转换为mysqli结果?,mysqli,Mysqli,我知道如何在mysqli中获取结果,但是如何为mysqli编写这个示例 $t=mysql_query($query); return (mysql_result($t, 0) === '1') ? true : false; 第一行很简单,但第二行怎么做 $t=mysqli_query($mysqli, $query); return (mysql_result($t, 0) === '1') ? true : false; 我用mysqli_结果替换了mysqli_结果,它似乎可以工作

我知道如何在mysqli中获取结果,但是如何为mysqli编写这个示例

$t=mysql_query($query);
return (mysql_result($t, 0) === '1') ? true : false; 
第一行很简单,但第二行怎么做

$t=mysqli_query($mysqli, $query);
return (mysql_result($t, 0) === '1') ? true : false; 
我用mysqli_结果替换了mysqli_结果,它似乎可以工作,但我的编辑器没有将mysqli_结果识别为php的一部分

我只是想确认一下这是正确的方法

谢谢您的关注。

试试看

$t=mysqli_query($mysqli, $query);
return (mysqli_result($t, 0) === '1') ? true : false; 


function mysqli_result($res, $row, $field=0) { 
    $res->data_seek($row); 
    $datarow = $res->fetch_array(); 
    return $datarow[$field]; 
} 

我使用了这个解决方案,但有一个问题

mysql\结果集中支持的表前缀

SELECT a.timestamp, b.timestamp FROM table a, table b
使用mysql_result,可以直接使用

mysql_result($res,0,"a.timestamp");
而对于mysql_fetch assoc,这是不可能的,因为第一个时间戳将被第二个时间戳覆盖。 但是,如果以数字形式返回结果,然后像这样扫描结果集的字段,则可以模拟此操作:

function mysqli_result($result, $row, $field) {

    $result->data_seek($row);

    // for no table prefix just go ahead and fetch assoc
    if ( strstr($field, ".") === false ) {
        // Fetch result array
        $data = $result->fetch_assoc();

        return $data[$field];
    }

    // workaround for assoc use and overwriting fieldnames like "a.timestamp" and "b.timestamp"
    list($tablename,$fieldname) = explode(".",$field);
    $resultData = $result->fetch_array(MYSQLI_NUM);

    foreach( $result->fetch_fields() as $index => $fieldData ) {

        if ( $fieldData->table == $tablename && $fieldData->name == $fieldname ) {
            return $resultData[$index];
        }
    }

    return false;
}

现在可以像以前一样使用mysqli_结果($res,0,“a.timestamp”)

文档提供了备选方案:您尝试过吗?谢谢Vijay。我不确定它到底是怎么工作的,但明天我醒来时会看一看。