Zitat von psygonis
Beitrag anzeigen
Ankündigung
Einklappen
Keine Ankündigung bisher.
Blob
Einklappen
Neue Werbung 2019
Einklappen
Dieses Thema ist geschlossen.
X
X
-
Zitat von hellbringer Beitrag anzeigenEs steht alles im PHP-Handbuch. Was ist der Mehrwert davon, wenn ich alles per Copy+Paste wiederkaue? Beispielcode ist auch im Handbuch. Außerdem verwende ich persönlich kein mysqli, sondern seit 15+ Jahren nur mehr PDO. Also wenn, dann kann ich dir höchstens mein Beispielcode für PDO zur Verfügung stellen. Weil ich fang jetzt nich extra wegen dir an mich mit mysqli zu beschäftigen, mal davon abgesehen, dass ich mysqli mühsam finde. Auch bin ich nicht dein persönlicher Lehrer, sondern setze nur Anreize, anhand der du dich selber informieren kannst. Wenn dir das alles zu mühsam ist, dann hast du dir mit Programmieren wohl das falsche Hobby ausgesucht.
Du erwartest von anderen viel, lieferst selber aber eine sehr dürftige Leistung ab. Dafür schreibst du anscheinend sehr gerne lange Texte, in denen du dich über alles und jeden beklagst.
Mit meinem Beispielstring "abc123" funktioniert das alles einwandfrei, nur mit der Benutzung meiner großen Daten erhalte ich
Error while sending STMT_EXECUTE packet. PID=18880 in <b>D:\xampp\htdocs\projekte\uploadNew\upload2\DB\c lassesDB.php</b> on line <b>635</b><br />
in der Zeile steht mysqli_stmt_execute($stmt); Klar, ein Fehler beim Senden des Paketes, nur warum?
Kommentar
-
Zitat von hellbringer Beitrag anzeigen
mysqli hat auch eine objektorientierte Schreibweise. Wieso verwendest du diese nicht, wenn schon dein restlicher Code auch objektorientiert ist?
Kommentar
-
Anpassung meiner Funktion. Funktioniert. Hat jemand Interesse an dem Ganzen, kann er mich gern kontaktieren.
Code:function psySendLongData($mysql, $fieldID, $data){ $set_get_max_allowed = 0; $sql_get_max_allowed = "SELECT @@global.max_allowed_packet"; $this -> result = mysqli_query($this -> verbindung, $sql_get_max_allowed); $dataTemp = mysqli_fetch_array($this -> result, MYSQLI_ASSOC); $temp_get_max_allowed_ist = $dataTemp['@@global.max_allowed_packet']; $temp_get_max_allowed_soll = strlen($data); if($temp_get_max_allowed_soll >= $temp_get_max_allowed_ist){ $temp_get_max_allowed_set = $temp_get_max_allowed_soll + 1024; $sqlQuery = 'SET @@global.max_allowed_packet = ' . $temp_get_max_allowed_set; $this -> result = mysqli_query($this -> verbindung, $sqlQuery); $set_get_max_allowed = 1; } $stmt = mysqli_prepare($this -> verbindung, $mysql); mysqli_stmt_bind_param($stmt, "b", $txt); $txt = NULL; mysqli_stmt_send_long_data($stmt, $fieldID, $data); mysqli_stmt_execute($stmt); mysqli_stmt_close($stmt); if($set_get_max_allowed == 1){ $sqlQuery = 'SET @@global.max_allowed_packet = ' . $temp_get_max_allowed_ist; } }
Kommentar
-
Zuletzt geändert von hellbringer; 15.09.2021, 13:34.Ich frage mich, wozu dieses Kunstwerk gut sein soll. Jedenfalls brauchen tut man es nicht.
PHP-Code:if($set_get_max_allowed = 1){
Und warum konfigurierst du nicht einfach deinen Datenbankserver so, dass er größere Pakete annimmt?
Jedenfalls mit PHP globale Variablen herum zu setzen ist quasi eine Garantie für eine Race Condition. Das wird früher oder später zu Problemen führen.
Kommentar
-
Zitat von hellbringer Beitrag anzeigenIch frage mich, wozu dieses Kunstwerk gut sein soll. Jedenfalls brauchen tut man es nicht.
PHP-Code:if($set_get_max_allowed = 1){
Und warum konfigurierst du nicht einfach deinen Datenbankserver so, dass er größere Pakete annimmt?
Jedenfalls mit PHP globale Variablen herum zu setzen ist quasi eine Garantie für eine Race Condition. Das wird früher oder später zu Problemen führen.
Wozu ich das brauche, habe ich bereits ausführlich beschrieben. Wenn Du, ich betone Du!, es nicht brauchst, ist das kein Grund anzunehmen, das es sonst auch keiner braucht. Wie arrogant kann man denn nur sein?
Datenbankserver konfigurieren geht nicht immer auf jedem Web-Paket. Nicht jeder hat einen Server, den er frei konfigurieren kann. Ich kann es mir nicht leisten, meinen Kunden zu sagen, dass Sie gefälligst meine Vorstellungen und Vorgaben umzusetzen haben oder sich ansonsten Ihre Unzulänglichkeit in die Haare schmieren und mich in Ruhe lassen sollen.
Kommentar
-
Zitat von hellbringer Beitrag anzeigenWie gesagt ist das Herumsetzen der globalen Variablen problematisch und wird manchmal schwer nachvollziehbare Fehler verursachen, die im Endeffekt wieder mehr Arbeit für dich bedeuten. Wenn du das willst, dann ist es halt so.
Kommentar
-
Zitat von psygonis Beitrag anzeigenDas ist quasi eine abschaltbare Zusatzfunktionalität.
Kommentar
-
Ob jetzt PDO oder MySQLi spielt im Grunde keine Rolle. Man sollte das Verständnis für das Prinzip entwickeln, dann kann man auch anhand von PDO-Beispielen eine MySQLi Adaption herstellen.
Findet man keine Möglichkeit dazu wird MySQLi entweder die falsche Wahl gewesen sein oder man selber hat nicht ausreichend Hintergrundwissen für die Umsetzung.
Beides ist kein Grund sich die ganze zeit zu kappeln, denn es gibt zu jedem Fall eine Lösung: Entweder zu PDO wechseln oder sich einfach tiefer mit dem Thema befassen, das zum Problem führt.
Diese Plattform bietet in erster Linie Hilfe zur Selbsthilfe und genau das wurde getan. Aus meiner Sicht scheitert es hier an der Selbsthilfe, die hin und wieder auch ein Umdenken erfordert.
[MOD: geschlossen]Competence-Center -> Enjoy the Informatrix
PHProcks! • Einsteiger freundliche Tutorials • PreComposed Packages
Kommentar
Kommentar