wake-up-neo.net

Wordpress, IIS7, SQL Server 2008, zeigt keine Beiträge an (zeigt 'Nothing Found ...' an) und zeigt nur die Anzahl der Administratoren an - wie behebt man das?

Ich habe kürzlich WordPress auf IIS 7 installiert und es mit SQL Server 2008R2 verkabelt. Die Installation verlief gut.

Von Anfang an kann ich sehen, dass ein Beitrag vorhanden ist (nur in der Zählung), aber keiner ist aufgeführt; Ich habe ein paar Beiträge hinzugefügt.

Im Admin-Menü sehe ich unter Posts, dass es sechs veröffentlichte Posts "Published (6)" gibt. Die Liste darunter ist jedoch leer. Versuchen Sie auch, diese auf der Website anzuzeigen, indem Sie die Kategorie Renditen auswählen

Nichts gefunden

Entschuldigung, aber es wurden keine Ergebnisse für das angeforderte Archiv gefunden. Vielleicht hilft das Suchen, einen ähnlichen Beitrag zu finden.

Ich habe die Datenbank neu installiert, die PHP/SQL-Dateien überschrieben und WP neu installiert. Problem bleibt bestehen.

Ich habe versucht, die Einstellungen/Permalinks Vorschläge hier und. Keine Änderung.

Die Vorschläge hier beziehen sich darauf, dass nicht in die .htaccess-Datei geschrieben werden kann. Für mich kein Problem, und ich sehe nicht den Fehler, nicht speichern zu können. (Zur Überprüfung habe ich gespeichert, beendet, zur gleichen Permalinks-Seite navigiert und meine Einstellungen wurden gespeichert.).

Ich habe sogar die Permalinks auf Standard gesetzt und die Umschreiberegeln für Web.config entfernt:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
    <rewrite>
      <rules>
        <rule name="wordpress" patternSyntax="Wildcard">
            <match url="*"/>
                <conditions>
                    <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true"/>
                    <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true"/>
                </conditions>
            <action type="Rewrite" url="index.php"/>
        </rule>
     </rules>
    </rewrite>
  </system.webServer>
</configuration>

Keine Änderung. (Fügte sie wieder hinzu).

Ich habe SAVEQUERIES = TRUE in wp-config.php gesetzt und kann den Inhalt einiger Beiträge in der Protokolldatei sehen.

dh Hallo! Tagsüber bin ich ein Fahrradbote, nachts ein aufstrebender Schauspieler, und das ist mein Blog. Ich lebe in Los Angeles, habe einen tollen Hund namens Jack ...

Aktivierte die Erweiterung php_sqlsrv_53_ts_vc9.dll und deaktivierte phpsqlsrv.dll

Ich habe andere Posts gesehen, die sich auf das Ändern einiger Sicherheitseinstellungen beziehen, da das System möglicherweise einen möglichen SQL-Injection-Angriff erkennt. Diese Posts beziehen sich jedoch auf eine Apache-bezogene Installation und können in meiner Version keine Referenzen finden.

Ich habe es mit WP 3.21 wiederholt - das gleiche Problem.

Ich kann auf den Monatslink (März) klicken und dann sehen, dass der Beitrag neben Nicht kategorisiert zählt. Sobald ich auf den Link klicke, wird erneut die Meldung "Nothing Found" (Nichts gefunden) angezeigt.

Wurde mit 3.31 wiederholt und stellte Folgendes in Windows/Temp/php53_errors.log fest:

[07-Mar-2012 21:00:51 UTC] WordPress-Datenbankfehler 42000: [Microsoft] [SQL Server Native Client 10.0] [SQL Server] Inkorrekte Syntax in der Nähe von 'wp_users'. für die Abfrage SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME LIKE '' wp_users '' erstellt von display_setup_form, pdo_wpdb-> Abfrage, pdo_wpdb -> _ post_query, pdo_wpdb-> Druckfehler

Nach der Installation und verfolgt es auf wp-content\mu-plugins\wp-db-abstraction\translations\sqlsrv\translations.php.

In diesem Fall verursachte das Hinzufügen zusätzlicher einfacher Anführungszeichen um den Tabellennamen den Fehler, sodass ich die folgende Zeile auskommentierte:

    // SHOW TABLES
    if ( strtolower($query) === 'show tables;' ) {
        $query = str_ireplace('show tables',"select name from SYSOBJECTS where TYPE = 'U' order by NAME",$query);
    }
    if ( stripos($query, 'show tables like ') === 0 ) {
        $end_pos = strlen($query);
        $param = substr($query, 17, $end_pos - 17);
        // quoted with double quotes instead of single?
        $param = trim($param, '"');
        if($param[0] !== "'") {
            //$param = "'$param'";          <----------- commented out
        }
        $query = 'SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME LIKE ' . $param;
    }

Jetzt lautet die SQL-Anweisung

SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME LIKE 'wp_users'

anstatt

SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME LIKE '' wp_users ''

Wiederholte Installation - Problem bleibt bestehen, diesmal jedoch keine SQL-Fehlermeldung.

- Update -

Ich habe vergessen zu erwähnen, dass ich dies mit der WP DB Abstraction verwende (impliziert durch ...

wp-content\mu-plugins\wp-db-abstraktion\translations\sqlsrv\translations.php

... über. Gibt es eine andere Möglichkeit, dies mit SQL Server zum Laufen zu bringen?

2
ElHaix

Ich hatte das gleiche problem In meiner Protokolldatei kann ich sehen, dass die Abfrage, die die Beiträge zurückgibt, nicht mehr funktioniert.

Ich habe es geschafft, dies zum Laufen zu bringen, indem ich zu "wp-includes\query.php" gegangen bin und dann die Variable $ limits aus der Abfrage entfernt habe.

Es scheint, dass dies auf SQL Server bricht.

Finden Sie diese Zeile:

$ this-> request = "SELECT $ found_rows $ distinct $ fields FROM $ wpdb-> posts $ join WHERE 1 = 1 $ wobei $ groupby $ orderby $ limits";

ändern:

$ this-> request = "SELECT $ found_rows $ verschiedene $ Felder FROM $ wpdb-> posts $ join WHERE 1 = 1 $ wobei $ groupby $ orderby";

Lassen Sie mich wissen, ob dies für Sie funktioniert hat.

1
edwardl