PHP MySQL PDO SQLSTATE[HY000]:一般错误
请帮助修复以下PHP脚本中的“SQLSTATE[HY000]:常规错误”。另外,请参考MySQL脚本以防出现错误PHP MySQL PDO SQLSTATE[HY000]:一般错误,php,mysql,pdo,Php,Mysql,Pdo,请帮助修复以下PHP脚本中的“SQLSTATE[HY000]:常规错误”。另外,请参考MySQL脚本以防出现错误 <?php # MySQL $host = 'localhost'; $username = 'root'; $password = ''; $dbname = 'procdb'; try { $pdo = new PDO("mysql:host=$host;dbname=$dbname", $username, $password); $pdo->
<?php
# MySQL
$host = 'localhost';
$username = 'root';
$password = '';
$dbname = 'procdb';
try {
$pdo = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Connected to MySQL Server successfully." . "\n";
$sql = "CALL prepend('abcdefg', @inOutParam);";
$stmt = $pdo->query($sql);
do {
$rows = $stmt->fetchAll(PDO::FETCH_NUM);
if ($rows) {
foreach($rows as $row) {
print($row[0] . "\n");
}
}
} while ($stmt->nextRowset());
} catch (PDOException $e) {
#die("Could not connect to the database $dbname :" . $e->getMessage());
$error = $e->getMessage();
echo $error . "\n";
} catch (Exception $e) {
$error = $e->getMessage();
echo $error . "\n";
} finally {
$pdo = null;
echo "Connection closed." . "\n";
}
?>
错误的原因是什么?请注意,添加“$stmt->close();”或“$stmt->closeCursor();”没有帮助
请帮忙
谢谢试试这个,行吗
$rows = $stmt->fetchAll(PDO::FETCH_NUM);
外部While循环
try {
$pdo = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Connected to MySQL Server successfully." . "\n";
$sql = "CALL prepend('abcdefg', @inOutParam);";
$stmt = $pdo->query($sql);
$rows = $stmt->fetchAll(\PDO::FETCH_ASSOC);
foreach ($rows as $row) {
foreach ($row as $col) {
print $col . "\n";
}
}
$stmt->nextRowset();
$rows = $stmt->fetchAll(\PDO::FETCH_ASSOC);
foreach ($rows as $row) {
foreach ($row as $col) {
print $col . "\n";
}
}
} catch (PDOException $e) {
#die("Could not connect to the database $dbname :" . $e->getMessage());
$error = $e->getMessage();
echo $error . "\n";
} catch (Exception $e) {
$error = $e->getMessage();
echo $error . "\n";
} finally {
$pdo = null;
echo "Connection closed." . "\n";
}
为什么一直切换分隔符?什么是
@inOutParam
?您在哪里声明的?这将只获取第一个结果集。请看-OPs代码几乎与示例完全相同。事实上,给定的代码段基于PHP文档,它没有解决“SQLSTATE[HY000]:一般错误”的问题。请帮助进一步输入。@rescobar,根据您的代码输出的结果与预期不符:已成功连接到MySQL服务器。abcdefg abcdefg连接已关闭。预期输出:已成功连接到MySQL服务器。abcdefg zyxwabcdefg连接已关闭。
try {
$pdo = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Connected to MySQL Server successfully." . "\n";
$sql = "CALL prepend('abcdefg', @inOutParam);";
$stmt = $pdo->query($sql);
$rows = $stmt->fetchAll(\PDO::FETCH_ASSOC);
foreach ($rows as $row) {
foreach ($row as $col) {
print $col . "\n";
}
}
$stmt->nextRowset();
$rows = $stmt->fetchAll(\PDO::FETCH_ASSOC);
foreach ($rows as $row) {
foreach ($row as $col) {
print $col . "\n";
}
}
} catch (PDOException $e) {
#die("Could not connect to the database $dbname :" . $e->getMessage());
$error = $e->getMessage();
echo $error . "\n";
} catch (Exception $e) {
$error = $e->getMessage();
echo $error . "\n";
} finally {
$pdo = null;
echo "Connection closed." . "\n";
}