在 运行 我的 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。
美好的一天!
我正在构建一个将数据插入 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。