我正在尝试更新一个旧的PHP项目,但我并不真正了解PHP 4和5。 我不完全明白下面的片段中发生了什么..
$page_num
没有在任何地方声明,我得到通知:未定义的变量:page_num。代码中有很多未定义的变量,并且mysql_result
的多种用途在 PHP 7 中不受支持。
PHP 代码段:
if ($page_num) {
$getpage_IDquery = MYSQL_QUERY("SELECT page_ID FROM pages WHERE ID='$ID' AND page_num='$page_num' ORDER BY page_ID");
if (mysql_num_rows($getpage_IDquery) > 0) {
$page_ID = MYSQL_RESULT($getpage_IDquery,0,"page_ID");
}
}
在查询(SELECT page_ID FROM pages WHERE ID='$ID' AND page_num='$page_num' ORDER BY page_ID
(中,有$ID
和$page_num
,它们也没有在代码中的任何位置定义 - 不确定要用它完成什么。
桌子:
'pages' > ID, page_ID, picture, page_num;
谁能帮我使用 mysqli 将代码片段更新到 PHP7?mysql_result替代方案是什么?
您在 if 条件中使用变量$page_num
,但它似乎从未被声明或初始化过。不是产生错误的查询,而是 if 语句。
我已经更改了代码以使用 PDO。首先,您需要创建连接。
$pdo = new PDO('mysql:host=localhost;dbname=db', $username, $password, $options);
您可以通过执行以下操作在条件中添加其他验证
if (!empty($page_num) && $page_num > 0) {
$sth = $pdo->prepare("SELECT page_ID FROM pages WHERE ID=? AND page_num=? ORDER BY page_ID");
$sth->execute([$ID, $page_num]);
$page_ID = 0;
if($sth->rowCount()) {
$row = $sth->fetchObject();
if ($row) $page_ID = $row->page_ID;
}
}