旧的 PHP 项目未声明的变量到 PHP 7



我正在尝试更新一个旧的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;
}
}

最新更新