Inhaltsverzeichnis
PDO betreibt Big-Data-Objekte
Was sind Big-Data-Objekte?
Was passiert, wenn wir Big-Data-Objekte direkt betreiben?
Richtige Haltung
Heim Datenbank MySQL-Tutorial Wie PDO Big-Data-Objekte in MySQL verwaltet

Wie PDO Big-Data-Objekte in MySQL verwaltet

Jun 02, 2023 pm 06:01 PM
mysql pdo

PDO betreibt Big-Data-Objekte

Im Allgemeinen speichern wir in der Datenbank nur Daten vom Typ int und varchar. Erstens, weil moderne relationale Datenbanken viele Optimierungen für diese Inhalte haben, und zweitens auch die meisten Indizes Es kann nicht auf Felder angewendet werden mit zu viel Inhalt sind beispielsweise Felder vom Typ Text nicht für die Erstellung von Indizes geeignet. Wenn wir eine Datenbank verwenden, speichern wir daher selten große Inhaltsfelder in der Datenbank. Allerdings stellt MySQL diese Art von Speicher tatsächlich für uns bereit, aber wir nutzen ihn normalerweise nicht oft.

Was sind Big-Data-Objekte?

„Groß“ bedeutet normalerweise „ungefähr 4 KB oder mehr“, obwohl einige Datenbanken problemlos bis zu 32 KB Daten verarbeiten können, bevor die Daten „groß“ werden. Große Objekte können Text- oder Binärobjekte sein, und wir können PDO dazu bringen, große Datentypen zu verwenden, indem wir den PDO::PARAM_LOB-Typcode im PDOStatement::bindParam()- oder PDOStatement::bindColumn()-Aufruf verwenden. PDO::PARAM_LOB weist PDO an, die Daten als Stream abzubilden, damit sie mithilfe der PHP-Streams-API manipuliert werden können.

In MySQL bedeutet die Einstellung des Feldtyps auf Blob, dass das Feld ein großes Objektformat hat. Wenn bei Verwendung von bindParam () oder bindColumn () der Parameter des angegebenen Felds vom Typ PDO::PARAM_LOB ist, können Sie den Inhalt dieses Objekts direkt in Form eines Handles abrufen und ihn wie fopen( weiter bearbeiten) ).

<code>CREATE TABLE `zy_blob` (<br>  `id` int(11) NOT NULL AUTO_INCREMENT,<br>  `attach` longblob,<br>  PRIMARY KEY (`id`)<br>) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;<br></code>
Nach dem Login kopieren

Dies ist eine Datentabelle für unsere Tests. Das Feld „Attach“ ist auf den Typ „Longblob“ eingestellt, was ein relativ großer Blobtyp ist, damit wir mehr Informationen speichern können. Schließlich können heutige Bilder oder Dateien problemlos einige MB oder Dutzende MB groß sein. Für einen einfachen Test verwenden wir direkt den größten Blob-Typ. Die Größe von Tinyblob beträgt 255 Byte, die Größe des Blob-Typs beträgt 65 KB, der Mediumblob beträgt 16 MB und der Longblob beträgt 4 GB.

Was passiert, wenn wir Big-Data-Objekte direkt betreiben?

Lassen Sie uns einfach das Big-Data-Objekt direkt bedienen, um zu sehen, was das Ergebnis ist.

<code>$stmt = $pdo->prepare("insert into zy_blob (attach) values (?)");<br>$fp = fopen('4960364865db53dcb33bcf.rar', 'rb');<br>$stmt->execute([$fp]);<br><br>$stmt = $pdo->query("select attach from zy_blob where id=1");<br>$file = $stmt->fetch(PDO::FETCH_ASSOC);<br>print_r($file); <br>// Array<br>// (<br>//     [attach] => Resource id #6<br>// )<br></code>
Nach dem Login kopieren

Wir speichern die von fopen() geöffnete Datei direkt im Blob-Feld, ohne das Feld vorher zu binden. Aus der Datenbank lässt sich erkennen, dass die Blob-bezogenen Felder nur Zeichenfolgen in der Form „Ressourcen-ID #6“ speichern. Mit anderen Worten, ohne jegliche Verarbeitung wird das $fp-Handle zu einem String-Typ gezwungen, und das Ergebnis des erzwungenen Handle-Typs ist, dass nur eine Ressourcen-ID ausgegeben wird und der Blob nur mit dem Zeichentyp übereinstimmt Feld. Diese Zeichenfolge wird gerade aufgezeichnet.

Richtige Haltung

Als nächstes werfen wir einen Blick auf die richtige Haltung, nämlich das Einfügen von Daten über bindParam() und das Lesen von Daten über bindColumn().

<code>$stmt = $pdo->prepare("insert into zy_blob (attach) values (?)");<br><br>$fp = fopen('4960364865db53dcb33bcf.rar', 'rb');<br><br>$stmt->bindParam(1, $fp, PDO::PARAM_LOB); // 绑定参数类型为 PDO::PARAM_LOB<br>$stmt->execute();<br><br>$stmt = $pdo->prepare("select attach from zy_blob where id=2");<br>// // $file = $stmt->fetch(PDO::FETCH_ASSOC);<br>// // print_r($file); // 空的<br>$stmt->execute();<br>$stmt->bindColumn(1, $file, PDO::PARAM_LOB); // 绑定一列到一个 PHP 变量<br>$stmt->fetch(PDO::FETCH_BOUND); // 指定获取方式,返回 TRUE 且将结果集中的列值分配给通过 PDOStatement::bindParam() 或 PDOStatement::bindColumn() 方法绑定的 PHP 变量<br>print_r($file); // 二进制乱码内容<br>$fp = fopen('a.rar', 'wb');<br>fwrite($fp, $file);</code>
Nach dem Login kopieren

Nachdem wir die Daten über bindParam() gebunden und den Typ PDO::PARAM_LOB angegeben haben, fügen wir zunächst den binären Inhalt des Dateihandles normal in die Datenbank ein. Als nächstes verwenden wir bindColumn() und geben außerdem den Typ PDO::PARAM_LOB an, um die abgefragten Daten abzurufen. Drucken Sie die abgefragten Feldinformationen direkt aus, und Sie können sehen, dass es sich um binäre Inhalte handelt. Abschließend speichern wir diesen Binärinhalt in einer Datei mit einem anderen Namen.

Das obige ist der detaillierte Inhalt vonWie PDO Big-Data-Objekte in MySQL verwaltet. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

MySQL: Die einfache Datenverwaltung für Anfänger MySQL: Die einfache Datenverwaltung für Anfänger Apr 09, 2025 am 12:07 AM

MySQL ist für Anfänger geeignet, da es einfach zu installieren, leistungsfähig und einfach zu verwalten ist. 1. Einfache Installation und Konfiguration, geeignet für eine Vielzahl von Betriebssystemen. 2. Unterstützung grundlegender Vorgänge wie Erstellen von Datenbanken und Tabellen, Einfügen, Abfragen, Aktualisieren und Löschen von Daten. 3. Bereitstellung fortgeschrittener Funktionen wie Join Operations und Unterabfragen. 4. Die Leistung kann durch Indexierung, Abfrageoptimierung und Tabellenpartitionierung verbessert werden. 5. Backup-, Wiederherstellungs- und Sicherheitsmaßnahmen unterstützen, um die Datensicherheit und -konsistenz zu gewährleisten.

Kann ich das Datenbankkennwort in Navicat abrufen? Kann ich das Datenbankkennwort in Navicat abrufen? Apr 08, 2025 pm 09:51 PM

Navicat selbst speichert das Datenbankkennwort nicht und kann das verschlüsselte Passwort nur abrufen. Lösung: 1. Überprüfen Sie den Passwort -Manager. 2. Überprüfen Sie Navicats "Messnot Password" -Funktion; 3.. Setzen Sie das Datenbankkennwort zurück; 4. Kontaktieren Sie den Datenbankadministrator.

So erstellen Sie Navicat Premium So erstellen Sie Navicat Premium Apr 09, 2025 am 07:09 AM

Erstellen Sie eine Datenbank mit Navicat Premium: Stellen Sie eine Verbindung zum Datenbankserver her und geben Sie die Verbindungsparameter ein. Klicken Sie mit der rechten Maustaste auf den Server und wählen Sie Datenbank erstellen. Geben Sie den Namen der neuen Datenbank und den angegebenen Zeichensatz und die angegebene Kollektion ein. Stellen Sie eine Verbindung zur neuen Datenbank her und erstellen Sie die Tabelle im Objektbrowser. Klicken Sie mit der rechten Maustaste auf die Tabelle und wählen Sie Daten einfügen, um die Daten einzufügen.

So kopieren Sie Tabellen in MySQL So kopieren Sie Tabellen in MySQL Apr 08, 2025 pm 07:24 PM

Durch das Kopieren einer Tabelle in MySQL müssen neue Tabellen erstellt, Daten eingefügt, Fremdschlüssel festgelegt, Indizes, Auslöser, gespeicherte Verfahren und Funktionen kopiert werden. Zu den spezifischen Schritten gehören: Erstellen einer neuen Tabelle mit derselben Struktur. Fügen Sie Daten aus der ursprünglichen Tabelle in eine neue Tabelle ein. Legen Sie die gleiche fremde Schlüsselbeschränkung fest (wenn die Originaltabelle eine hat). Erstellen Sie den gleichen Index. Erstellen Sie denselben Auslöser (wenn die ursprüngliche Tabelle eine hat). Erstellen Sie dieselbe gespeicherte Prozedur oder Funktion (wenn die ursprüngliche Tabelle verwendet wird).

Wie man MySQL sieht Wie man MySQL sieht Apr 08, 2025 pm 07:21 PM

Zeigen Sie die MySQL -Datenbank mit dem folgenden Befehl an: Verbindung zum Server: MySQL -U -Benutzername -P -Kennwort ausführen STEILE -Datenbanken; Befehl zum Abrufen aller vorhandenen Datenbanken auswählen Datenbank: Verwenden Sie den Datenbanknamen. Tabelle Ansicht: Tabellen anzeigen; Tabellenstruktur anzeigen: Beschreiben Sie den Tabellennamen; Daten anzeigen: Wählen Sie * aus Tabellenname;

Wie kann ich das Datenbankkennwort in Navicat für Mariadb anzeigen? Wie kann ich das Datenbankkennwort in Navicat für Mariadb anzeigen? Apr 08, 2025 pm 09:18 PM

Navicat für MariADB kann das Datenbankkennwort nicht direkt anzeigen, da das Passwort in verschlüsselter Form gespeichert ist. Um die Datenbanksicherheit zu gewährleisten, gibt es drei Möglichkeiten, Ihr Passwort zurückzusetzen: Setzen Sie Ihr Passwort über Navicat zurück und legen Sie ein komplexes Kennwort fest. Zeigen Sie die Konfigurationsdatei an (nicht empfohlen, ein hohes Risiko). Verwenden Sie Systembefehlsleitungs -Tools (nicht empfohlen, Sie müssen die Befehlszeilen -Tools beherrschen).

Wie kopieren und fügen Sie MySQL ein und fügen Sie sie ein Wie kopieren und fügen Sie MySQL ein und fügen Sie sie ein Apr 08, 2025 pm 07:18 PM

Kopieren und einfügen in MySQL die folgenden Schritte: Wählen Sie die Daten aus, kopieren Sie mit Strg C (Windows) oder CMD C (MAC). Klicken Sie mit der rechten Maustaste auf den Zielort, wählen Sie ein Einfügen oder verwenden Sie Strg V (Windows) oder CMD V (MAC). Die kopierten Daten werden in den Zielort eingefügt oder ersetzen vorhandene Daten (je nachdem, ob die Daten bereits am Zielort vorhanden sind).

So führen Sie SQL in Navicat aus So führen Sie SQL in Navicat aus Apr 08, 2025 pm 11:42 PM

Schritte zur Durchführung von SQL in Navicat: Verbindung zur Datenbank herstellen. Erstellen Sie ein SQL -Editorfenster. Schreiben Sie SQL -Abfragen oder Skripte. Klicken Sie auf die Schaltfläche Ausführen, um eine Abfrage oder ein Skript auszuführen. Zeigen Sie die Ergebnisse an (wenn die Abfrage ausgeführt wird).

See all articles