Beiträge von ArtCore7

    Der einzelne Select klappt.

    Kann ich bestätigen auf der MariaDB


    PHP
    $sql_select[] = "SELECT {$new_post_id}, '{$meta_key}', '{$meta_value}'";}
    
    $sql .= implode( ' UNION ALL ', $sql_select );
    // @codingStandardsIgnoreStart
    $wpdb->query($sql);
    // @codingStandardsIgnoreEnd


    Das ganze wird ja hier so aufgebaut, wahrscheinlich damit nur eine Datenbank-Verbindung aufgebaut werden muss und nicht "x"-Verbindungen für jede postmeta. Könnte die Funktion mal umschreiben, das er jedes Select einzeln schickt.

    Hab das ganze gerade nochmal mit Server version: 8.0.20 MySQL Community Server - GPL probiert und siehe da... der Mag das komplette Query.


    mysqld 8.0.20:

    | 3964 | _fl_builder_data | 116311 |


    Edit: Ohh doch nicht 100% die gleiche Länge, dies kann aber eventuell an einem anderen Insert liegen, welches ich noch offen hatte. Aber er bricht nicht bei 50k ab.

    So ThomasChr hat es mal bei einer neuen MariaDB Installation probiert, alles ein wenig Komisch.


    | post_id | meta_key | length(meta_value) |


    Original:

    | 3838 | _fl_builder_draft | 116523 |


    ThomasChr Ergebnis:

    | 3964 | _fl_builder_data | 50987 |


    Mein Ergebnis:

    | 3964 | _fl_builder_data | 51016 |

    Schönes Rätsel, halt uns auf dem laufenden :)


    Code
    /* Neu angelegte Werte in Datenbank */
    s:13:"margin_bottom";s:1:"0";s:20:"margin_bottom_medium";s:0:"";s:24:"margin_bottom <- ENDE
    
    /* Werte die kopiert werden sollten */
    s:13:"margin_bottom";s:1:"0";s:20:"margin_bottom_medium";s:0:"";s:24:"margin_bottom_responsive";s:0:"";s:11:"margin_left"; -> MEHR
    
    /* Werte aus dem Query Log */
    s:13:\"margin_bottom\";s:1:\"0\";s:20:\"margin_bottom_medium\";s:0:\"\";s:24:\"margin_bottom_responsive\";s:0:\"\";s:11 -> MEHR
    // Bemerkung addslashes ( ) //


    Hier auch kein Super Sonderzeichen zu sehen, welches die Speicherung in die Tabelle unterbrechen sollte.

    Steht auf 16MB sollte also für die paar Zeichen reichen :D
    max_allowed_packet = 16777216


    General log mitlaufen lassen

    INSERT INTO wn_postmeta (post_id, meta_key, meta_value)

    UNION ALL SELECT 3964, '_fl_builder_data', '---> ALLE DATEN <---'


    Also kommen die Daten richtig an werden aber nicht komplett gespeichert.


    Eventuell ein Unicode Problem der Verbindung? (Stichwort utf8mb4)

    SET NAMES utf8mb4
    SET NAMES 'utf8mb4' COLLATE 'utf8mb4_unicode_ci'


    Wird beim verbinden von Wordpress zur DB also richtig gesetzt.


    Oder befindet sich an der abgeschnittenen Stelle vielleicht zufällig irgendein Sonder-/Steuerzeichen?

    Ok meine nächste Aufgabe, ich danke schonmal für die Denkanstöße, ich guck mir mal die vielen Zeichen an. :D

    Hallo Netcupler,


    Heute benötige ich mal wieder eure Hilfe um ein kleines Problem in den Griff zu bekommen. Ich habe ein Webhosting (4000er) und ein VPS (500er) da beim Webhosting das Wordpress immer langsamer wurde und die Datenbank Queries immer länger gebraucht haben, dachte ich mir setz doch mal schnell auf dem leeren VPS500 eine MariaDB Docker auf und guck wie schnell die Seite dann ist. Hat auch gut funktioniert und die Seite ist um EINIGES schneller geworden. Jetzt kommen wir aber zum Problem:


    Auf der Wordpress Seite verwende ich Beaver Builder, um einen Beitrag / Seite zu duplizieren hat Beaver Builder dafür eine Funktion, wenn ich diese ausführe wird die Seite auch erstellt aber leider werden in der Datenbank einige KB's von wichtigen Daten geschluckt oder kommen da eben nicht an. Ich hab mir die Funktion dann mal angeschaut.


    Was passiert:

    Original Beitrag (ID 3838) fl_builder_data:

    pasted-from-clipboard.png


    Duplizierter Beitrag (ID 3935) (auch beim zweiten duplizieren, wieder 36270 Zeichen)

    pasted-from-clipboard.png


    Also habe ich es mit einem anderen Beitrag erneut versucht (Ausgang ca. 100.000 Zeichen, nach dem duplizieren dann 36.807 Zeichen). Also verschluckt er irgendwo beim Senden oder Empfangen die Zeichen.


    Die Funktion:


    Also eigentlich was ganz einfaches, erstelle einen neuen Beitrag und lese die "postmeta" Daten aus und füge sie dem neuen Beitrag hinzu.


    So, dann hab ich mir eine Testseite erstellt, um zu gucken ob er die vollständige postmeta ausließt:

    PHP
    $post_meta = $wpdb->get_results( $wpdb->prepare( "SELECT meta_key, meta_value FROM {$wpdb->postmeta} WHERE post_id = %d", $post_id ) );

    Zieht alle postmeta Daten richtig aus der Datenbank, die Zeichen passen (116.430)


    Also schauen wir mal ob die Daten gesendet werden (in der foreach hab ich folgendes eingebaut:)

    PHP
    echo('postID: '.$new_post_id.'<br> meta_key: '.$meta_key.'<br> metavalue_len: '.strlen($meta_value).'<br>');

    Siehe da, auch hier werden die Daten komplett angezeigt und die Länge passt überein.


    Also dachte ich mir, eventuell irgendwo Probleme, dass der mariadb Server nicht mehr wie 32kb an Daten annimmt (LONGTEXT ist richtig gesetzt -> bis 4GB), hab dann eine Datenbank angelegt und die 116.430 Zeichen an die Datenbank geschickt. Hier kommen die Daten ohne Probleme in voller Länge an.


    Frage:

    Fällt euch noch was ein, wo die Daten verloren gehen können ? Oder hab ich gerade einen groben Denkfehler.

    Hattet ihr das nicht letztens durch die Geschichte mit der Verkabelung herausgefunden? ^^

    Das ist richtig, die Auflösung fand in den privaten Nachrichten statt. Haben die Kommunikation dann im Internen Konzern Chat weitergeführt. Er konnte mir dann bei einer Hosting Geschichte (intern) helfen und ich ihm bei einer Netzwerkgeschichte.


    Win Win-Situation durchs NC Forum

    Irgendwas in mir drängt mich dazu, diese Domain zu registrieren. Aber hier in DE kannste da eh kein Geld damit machen, von daher... Lust auf Streit habe ich sowieso nicht. ^^

    Bei Check Domain bin ich in der Warteliste auf Position 34 für Fritz.box und das schon relativ lange ?

    Hallo Elchin,


    Das ganze Verhalten wie du hier schreibst ist sehr stark vom Template abhänig welches du verwendest. Deswegen wäre Interessant welches Template / Theme / Design du verwendest. Wordpress macht für deine Beiträge eigentlich immer eine eigene Seite, natürlich kann man es auch so Regeln, dass nach dem Weiterlesen entweder dynamisch der Beitrag via JavaScript nachgeladen wird, oder der ganze Beitrag wird immer komplett geladen und nur durch "Weiterlesen" versteckt bzw. angezeigt.

    wenn es ums Budget geht, erlebt man auch so grandiose Ideen, die dann tatsächlich umgesetzt werden;

    ein CAT7-Installationskabel hat doch 4 Adernpaare, und man verwendet des jeweils f. Doppeldosen

    und wundert sich dann dass da nur Fast-Ethernet geht ;)

    Wurde bei mir in der Firma früher immer so gehandhabt (bis ca. 2004) und dazu noch gedrehte Adern das nur speziell eigene Patchkabel funktioniert haben. Ist jetzt zwar nicht mehr zulässig neue Büros so zu bauen. Aber mit der alten Sch***** kommt es immer wieder zu schönen Fehlern ?

    Anonymer FTP Zugang auf einem Server wo du deine Daten ansehen kannst ist eine suboptimale Art einen FTP Server zu betreiben außer du willst irgendeinen Mirror von Open Source Programmen stellen. Denn der FTP Server wird wahrscheinlich bevor du dich connectest von vielen anderen Bots gescannt.


    Wie du es mit Windows realisierst kann ich dir nicht helfen. Aber ich tippe mal auf die Firewall.