繁体   English   中英

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

[英]Old PHP project undeclared variables to PHP 7

我正在尝试更新一个旧的 PHP 项目,但我并不真正了解 PHP 4 和 5。我不完全理解下面代码段中发生的事情。

$page_num未在任何地方声明,我收到Notice: Undefined variable: page_num 代码中有很多未定义的变量,而且 PHP 7 不支持mysql_result多次使用。

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;
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM