Problème pour passez de MySql a MySqli

Petit nouveau ! | 4 Messages

08 févr. 2014, 17:31

Bonjour,

Je suis en tain de apprendre le php/MySql, mais je souhaite passer de MySql a MySqli, j'ai crée un petit projet avec une structure de code php/MySql, mais je ces vraiment pas comment convertir cette structure de code MySql en MySqli et gardez la structure actuel, je vous donne la structure de connexion et si vous pourriez me aider SVP.

email: [email protected]

Merci D'avance a vous tousse

Structure de code php/MySql de connexion:
<?php
class Dbase{

	private $_host = "localhost";
	private $_user = "root";
	private $_password = "password";
	private $_name = "dbname";
	
	private $_conndb = FALSE;
	public $_last_query = NULL;
	public $_affected_rows = 0;

	public $_insert_keys = array();
	public $_insert_values = array();
	public $_update_sets = array();

	public $_id;
	
	public function __construct(){
		$this->connect();
	}

    private function connect(){
		$this->_conndb = mysql_connect($this->_host,$this->_user,$this->_password);
		if(!$this->_conndb){
			die("Database connection failed:<br />".mysql_error());
		}else{
			$_select = mysql_select_db($this->_name,$this->_conndb);
			if(!$_select){
				die("Database selection failed:<br />".mysql_error());
			}
		}
		mysql_set_charset("UTF-8", $this->_conndb);
	}
	
	public function close(){
		if(!mysql_close($this->_conndb)){
			die("Closing connection failed.");
		}
	}
	
	public function escape($value){
		if(function_exists("mysql_real_escape_string")){
			if(get_magic_quotes_gpc()){
				$value = stripslashes($value);
			}
			$value = mysql_real_escape_string($value);
		}else{
			if(!get_magic_quotes_gpc()){
				$value = addslashes($value);
			}
		}
		return $value;
	}
	
	public function query($sql){
		$this->_last_query = $sql;
		$result = mysql_query($sql, $this->_conndb);
		$this->displayQuery($result);
		return $result;
	}
	
	public function displayQuery($result){
		if(!$result){
			$output  = "Database query failed: ".mysql_error()."<br />";
			$output .= "Last SQL query was: ".$this->_last_query;
			die($output);
		}else{
			$this->_affected_rows = mysql_affected_rows($this->_conndb);
		}
	}

	public function fetchAll($sql){
		$result = $this->query($sql);
		$out = array();
		while($row = mysql_fetch_assoc($result)){
			$out[] = $row;
		}
		mysql_free_result($result);
		return $out;
	}
	
	public function fetchOne($sql){
		$out = $this->fetchAll($sql);
		return array_shift($out);
	}
	
	public function lastId(){
		return mysql_insert_id($this->_conndb);
	}
	
}

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

08 févr. 2014, 18:22

salut,

qu'est ce que tu ne sais pas faire exactement ?

tu ne vois pas le parallèle entre les deux extensions ?
la plus part des infos utiles sont dans la doc http://fr2.php.net/mysqli

par exemple la connexion (en procédural) c'est mysqli_connect
Cette fonction prend en paramètre le nom de la base de données, le mysql_selected_db n'as pas d'équivalent vu que l'info est fournit au démarrage.

tu peux aussi utiliser la version objet (vu que tu semble déjà utiliser cela).

@+
Il en faut peu pour être heureux ......

Petit nouveau ! | 4 Messages

08 févr. 2014, 20:24

Merci pour ta réponse, j'ai essayer de le convertir en MySqli mais je y arrive pas j'ai toujours des erreur, je voudrais que quel-un prenne mon code et le convertie et me le envois pour voir le résultat et voir ou j'ai fait d'erreur.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

09 févr. 2014, 00:30

on ne fera pas ton taf désolé.

par contre si tu nous indique les messages d'erreur ainsi que le code utilisé pour le générer on pourra t'aider.

sinon il y a le forum "recrutement" ;)

@+
Il en faut peu pour être heureux ......

Petit nouveau ! | 4 Messages

09 févr. 2014, 01:57

Message par moogli
on ne fera pas ton taf désolé.
J'ai fait plusieurs test pour le convertir en MySqli mais a chaque fois j'ai des erreur, ces pour cette raison que je suis venue demandez de l'aide sur votre forum, et je reçois un commentaire d'un Modérateur "on ne fera pas ton taf désolé", j'ai 30 ans je suis pas un enfant et j'ai pas envie de jouez ce jeux avec vous, je vous et demandez juste une petite aide rien de très spécial pour vous mais bon ces pas grave je vais trouvez une personne qui vas me aidez, désoler de vous avoir déranger et merci de me avoir montrez que vous connaissiez la réponse a mon problème mais vous avez pris la grosse tête perce-que vous este une personne très spécial un MODÉRATEUR.

au-revoir et désoler pour le dérangement.

ViPHP
xTG
ViPHP | 7331 Messages

09 févr. 2014, 11:37

Je ne suis pas modérateur et je te tiendrai le même discours.
Tu nous balances ton code initial, tu nous annonces qu'après divers tests tu n'y arrives pas et tu nous demandes de te donner un code fonctionnel...
On en croise tous les jours des demandes comme celle-ci.
Pour être un minimum de bonne foi il va falloir nous montrer tes essais.
Et c'est à partir de tes essais que nous pourrons te guider.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

09 févr. 2014, 15:06

Si j'avais jouer mon rôle de modérateur je t'aurais indiqué ce message

Modération :
PHPFrance n'est pas un site de distribution de scripts gratuits,
ni de débuggage de scripts téléchargés et utilisés sans compréhension.

Merci de prendre le temps de lire les règlements.


le règlement tu l'accepté en t'inscrivant.

ton âge, le mien, que je soit modérateur ou non n'a rien a voir avec ma réponse.
Nous sommes bénévole, nous répondons pour aider les gens à accomplir leurs tâches et à COMPRENDRE comment le faire histoire qu'elles puissent le faire seul par la suite.

tu veux que le fasse pas de soucis mais ça te coûter des ronds, après tout dev c'est un métier (le miens comme celui de beaucoup d'autre plus doué que moi).

Ce que je vois avec ton message c'est que tu as une tâche à faire, tu n'y arrive pas, et nous ne pouvons même pas être sur que tu as essayé quelque chose.

je t'ai indiqué la doc de mysqli.
il y a des exemples concret de chaque fonction / méthode.
Si tu sais ce que fait la classe que tu indique tu peux le refaire simplement.
Je t'ai aussi indiqué la fonction à utiliser pour la connexion (après tout c'est le point de départ) avec une information que je pense utile.
qu'en as tu fais ?
tu as testé quelque chose .
tu est venu pleurer parce que je t'ai dit que l'on ne ferais pas ?

je vais même aller plus loin, et p'tet même pas rendre service aux autres, mais si t'es pas comptent va voir ailleurs y en a p'tet qui seront plus sympa.
ah et si tu ne t'en doute pas les gens ne se content rarement d'un forum et répondent sur plusieurs autres.
tiens dernière chose, regarde le nombre de message sous mon pseudo et je peu t'assurer qu'il n'y en a pas 1% où je pose une question, ce ne sont que des réponse à des personnes qui souhaite de l'aide. (oui la je me vente, et la encore je ne suis pas grand chose et loin d'avoir le record du nombre de message !).

@+
Il en faut peu pour être heureux ......

Petit nouveau ! | 1 Messages

20 avr. 2015, 22:08

salut, cela fait un bon moment que je rencontre se problème, mais je n'ai pas encore trouver de solution,

lorsque je developpe en local avec la fonction mysqli_fectch_assoc(), je ne rencontre pas d'erreur, mais après l'hergement , voici ce message d'erreur qui apparait et empêche l'affichage des données,

Warning: mysqli_fetch_assoc expects parameter 1 to be mysqli_result, boolean given in /home/a6886153/public_html/index.php on line 13

j'aimerais que vous m'aidiez à regler ce problème une fois pout toute, je vous remerci

Voici la requette de la ligne 13

$sql1=mysqli_query($connexion," select * from Photo where id_cat_photo='1' order by id desc limit 1

$phot1=mysqli_fetch_assoc($sql1);

Mammouth du PHP | 688 Messages

20 avr. 2015, 22:13

que te dit phpmyadmin quand tu y exécutes cette requete :
select * from Photo where id_cat_photo='1' order by id desc limit 1
?

ViPHP
xTG
ViPHP | 7331 Messages

23 avr. 2015, 14:39

Le souci vient de $connexion qui doit être une ressource valide.
Je dirai donc que ton souci c'est le mysqli_connect qui n'a pas fonctionné.
Ajoutes du code de debug de ce côté.