Page 1 sur 1
[MySQL] manipuler des BLOB sans mysqli, ni PDO
Posté : 09 janv. 2008, 10:27
par zeus
Bonjour à tous,
Pour un script de portage de données qui sera exécuté très ponctuellement ({1,6} par an), j'ai besoin de mettre à jour des enregistrements d'une table, particulièrement un champ de type BLOB.
Le serveur de production sur lequel doit s'exécuter ce script dispose d'une version de PHP qui ne propose ni mysqli, ni PDO. Dans l'optique ne pas recompiler PHP sur un serveur de production pour un script qui va tourner si peu, il a été décidé qu'on ne pouvait les avoir à notre disposition.
Lorsque je lance un UPDATE pour un enregistrement de la table, via un mysql_query() classique, le contenu du champ BLOB est tronqué à 16o.
J'aurais donc besoin de savoir si vous aviez une astuce pour insérer ou mettre à jour un champ BLOB dans une base de données MySQL sans pouvoir utiliser les requêtes préparées de MySQLi ou PDO.
PS : je ne sais pas si je suis clair, n'hésitez pas à demander plus de détail.
Posté : 09 janv. 2008, 11:24
par Nagol
alors la t'es mal parti de base
j'avoue que c'est une jolie colle, perso je pencherais pour une solution ou on bazarde le serveur de prod mais bon j'ai un style trés personel quand aux problèmes de versioning

Re: [MySQL] manipuler des BLOB sans mysqli, ni PDO
Posté : 09 janv. 2008, 11:48
par Calimero
La première question que je me poserais serait de savoir d'où provient le tronquage : de ton code, ou du client mysql de php, ou bien encore du serveur mysql (dont tu ne précises pas la version) ?
As tu déjà fait des tests dans ce sens ?
Posté : 09 janv. 2008, 12:19
par zeus
Vous voulez rigoler ?
Je viens de me rendre compte il y a 5 minutes que ce n'était pas un soucis de requête, mais de champs
J'essaye de rentrer 2Mo de code dans un BLOB ... donc dans un champ limité à 16o
4h de perdu pour une connerie de ma part
**pars se punir**

Posté : 09 janv. 2008, 21:09
par albat
zeus,
il existe plusieurs dizaines de SGBD différents,
ce serait beaucoup plus facile de t'aider si tu nous indiquais lequel tu utilises et en quelle version...
Et si ce n'est pas déjà fait, pense à jeter un coup d'oeil dans la documentation associée, c'est souvent utile.
Merci
Posté : 09 janv. 2008, 21:09
par albat
Modération :
zeus, afin d'obtenir une réponse sur ce forum, il est indispensable de :
- Préciser quel est le SGBD utilisé ainsi que sa Version
- Poster la Structure des Tables utilisées dans la requête sous la forme d'un "CREATE TABLE ..."
(Vous pouvez exporter la structure d'une table via phpMyAdmin. Retirez les colonnes inutiles)
- Indiquer le message d'erreur SQL le cas échéant.
Pensez à utiliser les balises Code : Tout sélectionner
pour afficher les requêtes SQL,
la Structure des Tables et si nécessaire un échantillon des données.
Assurez vous également d'avoir suivi ces [url=http://www.phpfrance.com/forums/voir_sujet-19378.php]conseils de débogage[/url].
[/color]
Posté : 09 janv. 2008, 21:10
par albat
Modération :
zeus, si ta question est résolue, pense à ajouter le tag [Résolu]
pour indiquer aux personnes qui voudront consulter ce sujet qu'il contient une solution.
Tu peux réaliser cette opération en cliquant sur le bouton
en haut à gauche de ce sujet.
c'que j'me régale !

Posté : 09 janv. 2008, 21:27
par Nagol
mwaha comme à ok coral, j'adore
*popcorn*
Posté : 09 janv. 2008, 21:42
par zeus
Pour le coup de la version du SGBD, j'était persuadé de l'avoir mis ... honte sur moi
Concernant la structure de la table, ma question n'avait, à l'origine, aucune raison de la poster, même s'il s'est avéré que si je l'avais consulté, j'aurais peut être trouvé ma réponse tout de suite

Avec le recul, je pense que j'ai plus posté dans le mauvais forum (PHP 5 aurait été mieux choisi)
Concernant le tag [résolu], comme je n'ai pas résolu la question de base (requête préparée sans PDO ni MySQLi), j'ai préféré le tag [délestage]
non mais dit 