0

PDO ステートメントと、localhost と Google での私自身の経験について私が知っていることから、1 つのクエリで複数の PDO ステートメントを使用することにはいくつかの問題があります。たとえば、この状況:

$stmt = $db_people->prepare("SELECT * FROM people WHERE online=1");
$stmt->execute();
$results_people = $stmt->fetch(PDO::FETCH_ASSOC);

このクエリでは、fetch のような単純な PDO ステートメントを実行できます (例)。しかし、次のような PDO ステートメントを使用したい場合:

$rows = $stmt->rowCount();

それは不可能であり、ステートメントは正しい行数を返しません。逆の方法で列名の1つを埋めると、rowCountは次のように正しく機能します。

$stmt = $db_people->prepare("SELECT name FROM people WHERE online=1");
$stmt->execute();
$rows = $stmt->rowCount();

その後、次のようにフェッチを追加します。

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

この例では正しく動作しません。私の質問は - 1 つのクエリで 2 つの異なる PDO ステートメントを組み合わせる方法は? ありがとうございました。

4

1 に答える 1

2

答えはおそらく、組み合わせようとしている操作によって異なります。たとえばPDOStatement::rowCount()、 SQL 操作と組み合わせようとしている場合、すべてのデータベースの SELECT ステートメントに対して 100% 信頼できるわけではないという説明SELECTの警告に注意することはおそらく価値があります。PDOStatement::rowCount()rowCount()

解決しようとしている問題が SELECT の結果行のカウントに限定されている場合はPDOStatement::fetchAll()、返された配列の行を使用してカウントする別の方法があります。

于 2012-06-14T18:28:06.380 に答える