IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

[MySQLi] Probleme envoi avec Mysqli send long data


Sujet :

PHP & Base de données

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3
    Par défaut [MySQLi] Probleme envoi avec Mysqli send long data
    Bonjour !

    J'ai besoin d'utiliser la fonction de l'extension php mysqli mysqli_send_long_data

    Sauf que je n'arrive pas a insérer quoi que ce soit avec celle ci. pour rappel, cette fonction sert notamment pour l'envoi de fichiers vers un champ Blob, en plusieurs paquets ( car les fichiers envoyés sont le plus souvent superieur au MAX_ALLOWED_PACKET de la configuration de Mysql)

    Mon code actuel:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    $req2 = "INSERT INTO test (`blob`) VALUES (?)";
    		$link = mysqli_connect("localhost", "root", "pass", "db") or die(mysqli_error());
    		$stmt = mysqli_prepare($link, $req);
    		while(!feof($catalogue_blob))
    		{
    			$buff = fread($catalogue_blob, 1024);
    			var_dump(mysqli_stmt_send_long_data($stmt, 0, $buff));
    		}
    		fclose($catalogue_blob);
    		mysqli_stmt_execute($stmt)or die(mysqli_error($link));
    		mysqli_close($link);
    		return true;
    ou catalogue _blob est un fopen d'un fichier...

    var_dump de $stmt : object(mysqli_stmt)#2 (0) { }

    et le sen_long_data renvoi toujours false...
    est ce que quelqu'un pourrait m'éclairer sur la maniere d'utiliser ces fonctions?

  2. #2
    Membre Expert Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 023
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 023
    Par défaut
    Salut,
    tu peux voir ça dans la doc :
    Note: Si la taille des données dépasse la taille maximal d'un paquet, (max_allowed_packet), vous devez spécifier le caractère b dans le paramètre types et utiliser la fonction mysqli_stmt_send_long_data() pour envoyer le message par paquets.
    http://www.php.net/manual/fr/mysqli-stmt.bind-param.php

    ex :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
    $stmt = $mysqli->prepare("INSERT INTO messages (message) VALUES (?)");
    $null = NULL;
    $stmt->bind_param("b", $null);
    $fp = fopen("messages.txt", "r");
    while (!feof($fp)) {
        $stmt->send_long_data(0, fread($fp, 8192));
    }
    fclose($fp);
    $stmt->execute();
    ?>
    Bye

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3
    Par défaut
    Re bonjour (un peu tardif)
    Je connais bien cet exemple, mais c'est justement en partie LUI que je n'arrive pas a faire fonctionner!

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3
    Par défaut
    J'ai essayé de binder avec B, en mettant un NULL (d'ailleur je ne sais pas pourquoi il mettent un null préalable, peux être que c'est provisoire, pour pouvoir envoyer les données plus tard...),
    mais en l'occurrence, je n'ai aucune donné envoyé, j'ai bien une ligne de plus en base, mais rien dedans!)

Discussions similaires

  1. [MySQL] Function avec mysqli fonctionne uniquement avec une ouverture de connexion à chaque appel
    Par Nathalie77 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 20/03/2015, 13h56
  2. [MySQL] probleme avec mysqli->insert_id()
    Par mickaelf dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 11/12/2009, 16h50
  3. [debutant]probleme envoi d'une chaine avec send()
    Par romainromain dans le forum Réseau
    Réponses: 4
    Dernier message: 23/11/2006, 22h37
  4. [MySQL] probleme envoi avec POST
    Par Tr@nkill dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 24/04/2006, 09h11
  5. Réponses: 1
    Dernier message: 11/08/2005, 01h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo