-1

ちょっとしたミステリーの時間: 私はこのクエリを得ました:

$stmt = 'update wp_term_relationships set term_taxonomy_id = :newID '.
        'where term_taxonomy_id= :oldID and object_id = :postID';
self::$stmtSetNewID = self::$dataBase->prepareStatement($stmt);
[...]
self::$stmtSetNewID->bindParam(':oldID', $oldCatID, PDO::PARAM_INT);
self::$stmtSetNewID->bindParam(':newID', $newCatID, PDO::PARAM_INT);
self::$stmtSetNewID->bindParam(':postID', $postID, PDO::PARAM_INT);
$result = self::$stmtSetNewID->execute();
$rowCount = self::$stmtSetNewID->rowCount();
echo $rowCount;

エラーレベルを設定してみた

$this->pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

可能なエラーを出力します

var_dump(self::$stmtSetNewID->errorInfo());

影響を受ける行の数を出力します (上記のコードの最後に)。エラーも警告も何もありません。rowCount()1 を返しますが、データベース内の値は変更されません。

私にとっては、PDO/データベースはすべてが機能していると言っているようですが、そうではありませんでし!

私は地獄のようにイライラしており、すべてのヒントに感謝します! ありがとうございました!

アップデート:

echo "\nPostID: $postID | oldID: $oldCatID ".
     "| newID: $newCatID | rowCount: $rowCount\n<br/>\n";

出力値は正しい$rowCountです。1 です。

PostID: 5432 | oldID: 3 | newID: 32 | rowCount: 1
PostID: 5435 | oldID: 3 | newID: 8 | rowCount: 1 
4

1 に答える 1

0

わかりました。私の愚かさに時間を無駄にして申し訳ありません。スクリプトが示すように、更新はエラーなしで実行されました。しかし、その後、スクリプトで投稿を更新しました。この更新により、新しいセット カテゴリが上書きされました。

于 2013-11-09T17:53:11.910 に答える