[MySQL] manipuler des BLOB sans mysqli, ni PDO

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

09 janv. 2008, 10:27

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.
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

ViPHP
ViPHP | 3300 Messages

09 janv. 2008, 11:24

alors la t'es mal parti de base :shock:

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 :)
Fait du php depuis que ca existe ou presque :)

ViPHP
ViPHP | 2287 Messages

09 janv. 2008, 11:48

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 ?
if(!@work()){ Nespresso(); } else { what(); }
______________________________

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

09 janv. 2008, 12:19

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 :lol:

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 :cry:

**pars se punir** :axe:
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

09 janv. 2008, 21:09

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

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

09 janv. 2008, 21:09

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]

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

09 janv. 2008, 21:10

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 Image en haut à gauche de ce sujet.


c'que j'me régale ! :langue:

ViPHP
ViPHP | 3300 Messages

09 janv. 2008, 21:27

mwaha comme à ok coral, j'adore

*popcorn*
Fait du php depuis que ca existe ou presque :)

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

09 janv. 2008, 21:42

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 :langue:
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer