在本例中,如何将mysql_结果转换为mysqli结果?
我知道如何在mysqli中获取结果,但是如何为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_结果,它似乎可以工作
$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。我不确定它到底是怎么工作的,但明天我醒来时会看一看。