2009-03-02 5 views
0

J'essaye de faire un INSERT dans un mysql db et il échoue quand l'une des valeurs dépasse 898 caractères. Y a-t-il un endroit où obtenir ou, mieux, définir cette valeur maximale? Je vais pirater la chaîne en morceaux et les stocker dans des rangées séparées si je le dois, mais j'aimerais pouvoir insérer jusqu'à 2k à la fois.PHP et MYSQL longueur variable maximale?

Je suppose que c'est un problème php car l'utilisation de champs LONGTEXT ou BLOB devrait être plus que suffisant dans la db.

Merci.

+0

Vous recevez une erreur de la DB ou PHP? –

+0

Vous pouvez faire écho (mysql_error()); sur la ligne après votre requête pour voir l'erreur. –

+0

Quand vous dites «ça échoue», que se passe-t-il? Est-ce qu'il tronque le champ ou échoue à insérer, et s'il échoue, quel est le message d'erreur pertinent? – thomasrutter

Répondre

0

Je suppose que c'est une colonne varchar que vous essayez d'insérer dans? Si oui, je suppose que la longueur maximale a été fixée à 898 ou 900 ou quelque chose comme ça.

En MySQL 5, la taille totale des lignes peut atteindre 65 536 octets. Ainsi, un varchar peut être défini de manière à conserver la taille totale des lignes.

Si vous avez besoin d'un texte plus grand (65,536) ou longtext (4 milliards?).

+0

J'ai dit dans ma question que j'utilise les champs LONGTEXT et BLOB. – Maximillian

1

Side Note:

Quand vous entrez dans le travail avec de grandes taches et des colonnes de texte, vous devez faire attention à la variable MySQL max_allowed_packet. Je crois qu'il vaut au moins 1M.