【问题标题】:Code not working when migrating from php v5.5 to php v5.3从 php v5.5 迁移到 php v5.3 时代码不起作用
【发布时间】:2019-09-30 15:05:46
【问题描述】:

我正在使用以下函数从数据库中读取数据。它在我本地电脑的 php v5.5 中运行良好。但是当我将此代码上传到运行 php v5.3 的服务器时,它无法正常工作。

  function sql_select_many($sql, $db_connection) {
    $mysql_query = mysql_query($sql, $db_connection);
    if ($mysql_query){
        $quantity = mysql_num_rows($mysql_query);
        $return_result = array();
        if($quantity>0){
            $rows = array();
            while ($row = mysql_fetch_assoc($mysql_query)) {
                $rows[] = $row;
            }
            $return_result = array("success"=> true,'count' => $quantity, 'rows'=> $rows);
            mysql_free_result($mysql_query);
        }
        else{
            $return_result = array("success"=> true,'count' => $quantity);
        }
    }
    else{
        $mysql_error = mysql_error($db_connection);
        $error_description = "Failed to execute the following SQL statement: $sql. mysql_error(): $mysql_error";

        $return_result = array("success"=> false);
    }        
    return $return_result ;
}

我这里用的是上面的函数-

$post_categories = sql_select_many("SELECT * FROM `post_categories` where is_active=1", $connection)["rows"];

谁能帮我识别与php v5.3不兼容的语句

更新 - 我没有收到任何具体错误。当我运行脚本时,它 只显示“页面不工作”。

【问题讨论】:

    标签: php-5.3 php-5.5


    【解决方案1】:

    PHP 5.5.x 中的大多数改进对现有代码没有影响。有几个incompatibilities

    从 5.3 升级 -> 5.4 有更多变化,您可以从这里找到:https://www.php.net/manual/en/migration54.incompatible.php

    如果您发布您遇到的实际错误,这也将使我们的工作更加轻松。 “它不起作用”不是很好描述的问题。

    【讨论】:

    • 我已更新有关我收到的错误消息的问题。
    • 显示所有 php 错误和警告的最快方法是将这些行添加到 PHP 代码文件的顶部: ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL);
    • 我已经有 ini_set('display_errors', 1); ini_set('display_startup_errors', 1);错误报告(E_ALL);在我的脚本中。
    • 下一个选项是检查您的网络服务器日志。那里应该有东西。如果我猜的话,我会说问题出在这里:....FROM `post_categories` where... try ...FROM post_categories where...
    【解决方案2】:

    问题在于调用该函数。以下更改对我有用-

    以下行修改-

    $post_categories = sql_select_many("sql statement ", $connection)["rows"];
    

    我从行尾删除了["rows"]

    新语句是-

    $post_categories = sql_select_many("sql statement ", $connection);
    $data = $post_categories["rows"];
    

    【讨论】:

      猜你喜欢
      • 2017-12-29
      • 2020-01-14
      • 1970-01-01
      • 2012-09-14
      • 1970-01-01
      • 2018-09-26
      • 1970-01-01
      • 1970-01-01
      • 2015-12-18
      相关资源
      最近更新 更多