Bonjour,
Je voudrais créer une fonction qui me rends le nom d'utilisateur grâce a son id, mais sous format String, ou autre format que je pourrais réinsérer dans une sous requête sql.

La fonction est la suivante:

if(!function_exists('user_name_by_id')){
	function user_name_by_id($id){
		global $db;
		
		$q = $db->prepare('SELECT name FROM users WHERE id=?');
		$q->execute([$id]);
		
		$data = $q->fetch(PDO::FETCH_OBJ);
		
		$q->closeCursor();
		
		return $data;
		
	}
}


Que dois je ajouter pour que user_name_by_id soit executable en sous requete sql s'il vous plaît ?
(exemple)

		$user_name =user_name_by_id($id) ;
			
		$sql = "INSERT into uploads (etudiant_name)  VALUES ('$user_name');
				
				
				$q = $db->prepare($sql);
				$q->execute();


Merci d'avance pour vos réponses.
Modifié par Loug (25 Jun 2017 - 19:01)
Je pense que ça doit fonctionner :

if(!function_exists('user_name_by_id')){
  function user_name_by_id($id){
    global $db;

    $q = $db->prepare("SELECT name FROM users WHERE id= :id LIMIT 1");
    $q->bindParam(':id', $id, PDO::PARAM_INT);
    $q->execute();

    $data = $q->fetch(PDO::FETCH_OBJ);
    $q->closeCursor();

    return $data->name;
  }
}

$user_name = user_name_by_id($id) ;
$q = $db->prepare("INSERT INTO `uploads` (`etudiant_name`)  VALUES (:name)");
$q->bindParam(':name', $user_name);
$q->execute();
$q->closeCursor();

Modifié par taspeur (25 Jun 2017 - 19:22)