我已阅读有关转换为mysqli的所有问题,但无法转换此代码:
// Select how many news should be displayed
if ($u_rank >= 1) {
$sql = mysqli_query($connect_db, "SELECT news_d FROM users_data WHERE uid = '$id'");
$news_d = mysql_result($sql, news_d);
} else {
$news_d = 10;
};
如果我尝试使用自定义功能:
function mysqli_result($res, $row, $field=0) {
$res->data_seek($row);
$datarow = $res->fetch_array();
return $datarow[$field];
}
尝试在我的代码中使用:
$news_d = mysqli_result($sql, news_d);
我收到了这个错误: 警告:mysqli_data_seek()期望参数2为整数,字符串为
帮助将不胜感激,
Best,Misko
答案 0 :(得分:0)
您传递的BR2_TARGET_ROOTFS_EXT2_SIZE
无效。这应该是一个整数。请尝试传递news_d
,如下所示:
0
答案 1 :(得分:0)
如果您的真实代码与您在问题中发布的代码相同,则该行中存在明显问题:
$news_d = mysqli_result($sql, news_d);
news_d
不是$news_d
。它看起来像一个常数(因为它不以$
开头)并且它被解释为常量。因为没有名为news_d
的常量,解释器会将其转换为字符串。它与:
$news_d = mysqli_result($sql, 'news_d');
constants的PHP文档页面中解释了这种行为:
如果使用未定义的常量,PHP假定您指的是常量本身的名称,就像您将其称为string(
CONSTANT
与"CONSTANT"
一样)。发生这种情况时,将发出级别E_NOTICE
的错误。另请参阅有关$foo[bar]
错误原因的手册输入(除非您先将define()
bar 作为常量)。
由于mysqli_result()
函数将其第二个参数传递给mysqli::data_seek()
($res->data_seek($row);
),因此它必须是数字,而不是字符串。不幸的是,您发布的代码的目的并不明确。只有你知道你应该传递给mysqli_result()
作为第一个参数的数字以及原因。