MYSQL 的 PHP 脚本作用于一个文件,而不作用于另一个文件

标签 php mysql angularjs

我目前有一个 AngularJS 应用程序,它通过链接到 PHP 脚本的工厂查询数据库。下面的脚本完全按照计划工作,并输出用于 Angular 的 JSON:

<?php
function getCompanyDetails($company_id)
    {
        // Connect to the database.
        require_once("config/connection.php");

        $query = "SELECT id, header, content FROM company_details WHERE company_id = ?;";

        $stmt = $conn->stmt_init();

        if($stmt->prepare($query)) {
            $stmt->bind_param("i", $company_id);
            $stmt->execute();

            $data = $stmt->get_result();

            while($row = $data->fetch_assoc()) {
                $result[] = $row;
            }

            header("Access-Control-Allow-Origin: *");
            header("Content-Type: application/json; charset=UTF-8");

            $stmt->close();
            mysqli_close($conn);
            echo json_encode($result);
        }
    }

getCompanyDetails(1);

?>

现在,我的应用程序的其他部分需要完全相同的操作(从数据库中选择结果),并且我正在使用以下脚本(与上面的脚本几乎相同的副本):

<?php
function getCompanyProjects($company_id)
    {
        // Connect to the database.
        require_once("config/connection.php");

        $query = "SELECT title, description FROM company_projects WHERE company_id = ?;";

        $stmt = $conn->stmt_init();

        if($stmt->prepare($query)) {
            $stmt->bind_param("i", $company_id);
            $stmt->execute();
            $data = $stmt->get_result();

            while($row = $data->fetch_assoc()) {
                $result[] = $row;
            }

            header("Access-Control-Allow-Origin: *");
            header("Content-Type: application/json; charset=UTF-8");

            $stmt->close();
            mysqli_close($conn);
            echo json_encode($result);
        }
    }

getCompanyProjects(1);

?>

问题是,第二个脚本不会返回任何结果。数据库中有该表的记录,我相信每次使用后我都会关闭连接。我已经被这个问题困扰了一段时间了,有人知道问题出在哪里吗?

查询SELECT title, description FROM company_projects WHERE company_id = ?;适用于phpMyAdmin。

提前致谢。

最佳答案

在尝试了fetch_assoc()、fetch_array()、mysqli_fetch_assoc()和许多其他方法之后,重置服务器几次,放置echosvar_dumps code> 无处不在,我意识到所有数据都被检索到 while 部分。

当我在 while 循环中实际迭代 var_dump 时,我看到了一个表示无法识别的字符的小符号。最后的结果之一中有一个未转义的引用。删除这个小 friend 后,fetch_assoc() 又开始正常工作了。问题出在实际数据上,而不是代码上。两个脚本现在都可以使用正确的数据正常工作。

感谢大家的帮助!在问这个问题之前我不知道 var_dump 是什么,这是一个非常有用的函数。

关于MYSQL 的 PHP 脚本作用于一个文件,而不作用于另一个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36193924/

相关文章:

javascript - AngularJS 和 NodeJs Express : routes and refresh

php - 在使用像数组这样的变量之前分配 array()

php - 验证码在 CI 中不起作用

php - 当 '0' 存在时,Mysql ORDER BY 不工作

mysql - Phpmyadmin sql 导入错误,Joomla 2.5

angularjs - 使用 ng-model 使用 angularjs/ui-bootstrap 制作 Accordion

javascript - 向您的范围指示您的 google api 已加载的正确方法是什么?

javascript - json_encoding 一个数组,但输出为字符串

php - Yii2:如何禁用或只读 Select2 小部件?

php - 在 1 个数据库列中更新多个结果