在 运行 我的 PHP 应用程序时获得 "SQLSTATE[HY000]: General error"

Getting "SQLSTATE[HY000]: General error" when running my PHP app

美好的一天!

我正在构建一个将数据插入 mySQL 数据库的虚拟申请表。当 运行 函数时,我成功地将数据插入数据库。但是,当函数成功运行时,我收到错误 SQLSTATE[HY000]: 一般错误

我以为它发生在我的数据库访问函数中,但它似乎连接正常。这是我的数据库访问函数:

    function connectToDB($params)
    {

    try
    {
        $conn = new PDO('mysql:host=localhost;dbname=test', 'root', '');
        $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

        $stmt = $conn->prepare($params['sql']);
        $stmt->execute($params['bindParam']);
        $results = array();
        $results['rowCount'] = $stmt->rowCount();

        if($results['rowCount'] == 1)
        {

            $results = $stmt->fetch(PDO::FETCH_ASSOC);

            return $results;

        } elseif($results['rowCount'] < 2) {

            $results = $stmt->fetch(PDO::FETCH_ASSOC);

            return $results; 

        } elseif($results['rowCount'] > 2) {

            $results = $stmt->fetchAll(PDO::FETCH_ASSOC);

            return $results;

        } elseif($results['rowCount'] == 2) {

            $results = $stmt->fetchAll(PDO::FETCH_ASSOC);

            return $results;

        }

    } catch (PDOException $e) {

        echo "Connection failed: " . $e->getMessage();

    }

    return $params;

}

我的代码中是否缺少某些内容,或者我的数据库访问代码中是否存在不应该包含的内容?我希望从中学习并在未来应用它,同时我仍在尝试 learn/improve 在我的 PHP 上。我希望我已尽力解释我的问题,感谢您花时间阅读!

谢谢

您没有使用 fetchAll()

$results = $stmt->fetchAll(PDO::FETCH_ASSOC);

使用插入查询。删除此语句应该可以解决您的问题。记住代码中的每个 fetch 和 fetchAll。