Page 1 sur 2
Problème d'exécution script SQL
Posté : 21 janv. 2016, 03:42
par Laurent001
Bonjour,
J' ai un soucis avec mon script, je crée la base de donnée, mais quand je veux lancer la création des table dans la base de donnée,
sa me dit que sa n' à pas réussi.
Pourtant jusqu' à présent j' ai toujours su le faire, je ne comprends pas ce qui se passe c' est pourquoi je voudrais voir si quelqu' un sait m' aider à résoudre?
Cela fait quelques jours que je cherche mais sans succès.
Merci d' avance pour votre aide.
Laurent O.
Re: Besoin d' aide pour mon script en php
Posté : 21 janv. 2016, 04:45
par Patriboom
Ton titre ne dit rien.
Tous, nous écrivons ici pour réclamer de l'aide et - ô surprise phpfrance - loge plusieurs documents et échanges de forum aidant à déboguer un script PHP.
De plus, sans code: nous ne pouvons pas t'aider.
Quelques pistes, si tes autres scripts fonctionnent: compare-les, vérifie que toutes les virgules, tous les guillemets et toutes les autres ponctuations sont présentes. Vérifie aussi tes noms: base, table, mot de passe. Une inversion de lettre?
Autre piste: si t'as accès à un gestion de bases, comme phpmyadmin, utilise ses outils pour générer tes codes ou les vérifier.
Aussi, si ton ordi est sous Linux, tu peux installer le paquets de test de code MySQL dont j'ai oublié le nom exact.
Re: Besoin d' aide pour mon script en php
Posté : 21 janv. 2016, 05:58
par laurent001
Je te remercie pour les infos, mon scripte à toujours fonctionné correctement, je pense qu' il doit s' agir d' un soucis coté MySql !
Je vais voir donc à vérifier de ce coté là car au niveau du script, je ne constate pas d' erreur !
Aussi, désolé concernant mon titre, je tacherais à être plus attentif.
Merci.
Re: Besoin d' aide pour mon script en php
Posté : 21 janv. 2016, 12:51
par Patriboom
Tu peux aussi nous soumettre ton code MySQL.
Re: Problème d'exécution script SQL
Posté : 23 janv. 2016, 04:55
par laurent001
Bonjour,
Je te remercie,
Je voulais voir, si je fourni mon script complet qui est un script pour petites annonces, est-ce que il serait possible de de le tester en l' installant?
Ceci afin de voir si il s' installe correctement !
Penses-tu que ce serait possible?
Re: Problème d'exécution script SQL
Posté : 23 janv. 2016, 05:34
par Patriboom
Commençons par le début: étudions la requête MySQL que tu soupçonnes le plus d'être l'origine de tes problèmes.
Afin de comprendre la requête, il sera bon de fournir aussi la structure de la (des) table(s) appelées par la requête.
Re: Problème d'exécution script SQL
Posté : 23 janv. 2016, 06:01
par laurent001
Oui donc voilà, pour utiliser mon script je crée une base de données, une fois crée, j' ai une page dans mon script appelé : config.inc.php ou je rentre les infos de ma base de données ce qui se présente comme ceci :
//MySQL paramètres de connexion ***
$db_host = "localhost";
$db_user = "nom_utilisateur";
$db_pass = "mots_de_passe_utilisateur";
$db_name = "nom_de_la_base";
Ceci fait, je me rends donc sur mon navigateur ou je tape http:/mon nom de domaine.com/setup
Ce qui normalement crée mes tables .
Jusqu' à présent j' ai toujours su exécuter cette tâche sans soucis, jusqu' il y à peu.
A présent quand je lance : http:/mon nom de domaine.com/setup
Sa me répond : La configuration de la base de données n'a pas réussi.
cela fait maintenant plus d' une semaine que je cherche ou se situe le soucis mais en vain, j' ai fais comme tu m' as dis plus haut, donc comparer et vois si il manquait pas un point virgule ou une virgule ou même des guillemets mais non, tout parait correct.
C' est ce qui ma amené à pensé que le problème vient peut-être du soucis de MYSql, peut-être un mauvais paramétrage.
J' ai donc contacté ceux qui gèrent mes serveurs qui se trouvent en Hollande, mais apparemment ils ne comprennent pas mon soucis.
J' avoue ne pas trouver ou se situe le soucis !
Re: Problème d'exécution script SQL
Posté : 23 janv. 2016, 14:26
par laurent001
donc voilà, j' ai eu un entretien avec ceux qui gère mes serveurs, ils ont amélioré Mysql et me dise que mon scripte doit être adapté de façon à pouvoir fonctionner avec PHP5.7 ou supérieur !
Le soucis c' est que je vois pas comment faire cela !
Re: Problème d'exécution script SQL
Posté : 23 janv. 2016, 15:06
par Patriboom
Tu as droit à du bon service: déjà PHP7, deux mois après sa sortie officielle.
Je suis étonné que tu utilises le nom config.inc.php c'est habituellement dans la configuration du serveur qu'on utilise ce nom, pas simplement pour un site.
Le mieux à faire, dans tes conditions, c'est de référer au manuel d'usager. PHP.org. Allons voir php.net/manual/fr/
Peut-être plus ici spécifiquement ici:
http://php.net/manual/fr/set.mysqlinfo.php
En
http://php.net/manual/fr/function.mysql-connect.php , on ne parle que de PHP5, pas mention de PHP7. Pourtant, la documentation date du 10 janvier 2016. Il y a cette mention: « Cette extension était obsolète en PHP 5.5.0, et a été supprimée en PHP 7.0.0. » dans un carré rouge.
Utiliserais-tu la commande mysql_connect ? Si oui, voilà pourquoi ton script bloque.
Lisant la page
http://php.net/manual/fr/function.mysqli-connect.php , je remarque ceci « mysqli_connect — Alias de mysqli::__construct() »
Quand on parle d'alias, il faut entendre « En attendant que les gens changent leurs habitdes, nous avons fait un petit pont » Dans ce cas, on devrait penser à utiliser mysqli_construct() lors de la création d'un nouveau code PHP.
Finalement, la page
http://php.net/manual/fr/mysqli.construct.php nous renseigne
Vérifie la commande de connexion, elle doit respecter la syntaxe suivante:
Style procédural
mysqli mysqli_connect ([ string $host = ini_get("mysqli.default_host") [, string $username = ini_get("mysqli.default_user") [, string $passwd = ini_get("mysqli.default_pw") [, string $dbname = "" [, int $port = ini_get("mysqli.default_port") [, string $socket = ini_get("mysqli.default_socket") ]]]]]] )
Ce qui veut dire, dans ton cas
$db = mysqli_connect ($db_host,$db_user, $db_pass, $db_base);
En PHP4, il y avait deux commande pour faire cela. Depuis 5, il n'y en a qu'une. De plus, en php5 on recommandait de passer de mysql_connect à mysqli_connect. En PHP7, le passage est obligatoire.
Si t'avais programmé en php5, veille à ajouter le petit « i » dans commande pour la faire passe de mysql_connect à mysqli_connect.
Reviens-nous avec les résultats.
Re: Problème d'exécution script SQL
Posté : 23 janv. 2016, 15:53
par laurent001
Je te remercie pour les infos, je check et te tiendrais au courant !
Re: Problème d'exécution script SQL
Posté : 23 janv. 2016, 18:52
par laurent001
voilà, donc j' ai trouvé le répertoire ou il faut faire les modification, il s' agit du répertoire : setup
Quand je modifie par mysqli sa me dit que c' est installé, mais quand je vérifie si mes tables sont crée, elles le sont pas donc la base de donnée reste à 0 !
J' ai tenté plusieurs modifications mais en vain.
Probablement une partie que je ne fais pas correctement je suppose.
Voici comment l' originale se présente :
<?php
@set_time_limit(0);
@ignore_user_abort(true);
require_once("../initvars.inc.php");
$path_escape = "../";
$in_admin = TRUE;
require_once("{$path_escape}config.inc.php");
$script_url = preg_replace('~setup$~','',$script_url);
function mysql_import_file($filename, &$errmsg)
{
$lines = file($filename);
if(!$lines){
$errmsg = "cannot open file $filename";
return false;
}
$scriptfile = false;
foreach($lines as $line){
$line = trim($line);
if(!ereg('^--', $line)){
$scriptfile.=" ".$line;
}
}
if(!$scriptfile)
{
$errmsg = "no text found in $filename";
return false;
}
$queries = explode(';', $scriptfile);
foreach($queries as $query){
$query = trim($query);
if($query == "") { continue; }
if(!mysql_query($query.';')){
$errmsg = "query ".$query." failed";
return false;
}
}
return true;
}
?>
<html>
<head>
<title>Phpannonces v1.3 - installation de la base de données</title>
<link rel="stylesheet" type="text/css" href="../style.css">
</head>
<body>
<br>
<div style="margin:20px 100px;">
<h2>Phpannonces v1.3 - installation de la base de données</h2>
<?php
if($_POST['confirm'])
{
?>
<p>
<?php
require_once("sql.inc.php");
$error = 0;
foreach ($sqls as $t=>$sql)
{
mysql_query($sql);
if(mysql_error())
{
if($debug)
{
echo "<div class=\"err\">Erreur création table $t - (".mysql_error().")</div>";
}
$error = 1;
}
}
mysql_import_file('phpas.sql', $errmsg);
if($error)
{
echo "<p>La configuration de la base de données n'a <span class=\"err\">pas réussi</span>.<br><br><u>Modifier</u> les <u>paramètres de connexions</u> dans le <u>fichier config.inc.php</u> et <a href=\"dbsetup.php\"><b>essayez à nouveau</b></a>.</p>";
}
else
{
echo "<p>Phpannonces est installé.</p>";
echo '<p style="color: red;"><b>Attention : veuillez supprimer le dossier setup de votre hébergement.</b></p>';
echo "<p>Se rendre à <a href=\"$script_url\">Accueil</a> | <a href=\"$script_url/admin/\">Administration</a></p>";
// Delete files
unlink('dbsetup.php');
unlink('index.php');
unlink('sql.inc.php');
unlink('phpas.sql');
rmdir('setup');
}
}
else
{
?>
<form action="" method="post">
<br><br>
<p>Voici les paramètres de connexion de la base de données spécifiée dans le fichier "config.inc.php".<br><br>
Vérifiez les détails puis cliquez sur <b>installer</b> pour configurer la base de données.<br><br>
Ouvrez le fichier "config.inc.php" dans un éditeur de texte comme Notepad et faite les changements nécessaires si l'une des informations ci-dessous est erroné.</p>
<br><br>
<p><table>
<tr><td style="width:120px"><b>MySQL host: </b></td><td> <?php echo $db_host; ?></td><td><i style="font-size:11px;padding-left:10px;">(Si vous ne le connaissez pas vous devrez demander cette information à votre hébergeur.)</i></td></tr>
<tr><td colspan="3"></td></tr>
<tr><td style="width:120px"><b>MySQL user: </b></td><td> <?php echo $db_user; ?></td><td><i style="font-size:11px;padding-left:10px;">(Votre identifiant MySQL.)</i></td></tr>
<tr><td colspan="3"></td></tr>
<tr><td style="width:120px"><b>MySQL psw: </b></td><td> <?php echo $db_pass; ?></td><td><i style="font-size:11px;padding-left:10px;">(Votre mot de passe MySQL.)</i></td></tr>
<tr><td colspan="3"></td></tr>
<tr><td style="width:120px"><b>MySQL name: </b></td><td> <?php echo $db_name; ?></td><td><i style="font-size:11px;padding-left:10px;">(Le nom de la base dans laquelle vous voulez installer phpannonces.)</i></td></tr>
<tr><td colspan="3"></td></tr>
<tr><td style="width:120px"><b>Prefixe : </b></td><td> <?php echo $tprefix; ?></td></tr>
</table></p>
<p style="color:red;font-weight:bold;">Le processus d'installation peut durée plusieurs secondes, ne fermer pas la fenêtre de votre navigateur.</p>
<button type="submit" name="confirm" value="Setup">Installer » </button>
</form>
</div>
<?php
$_cmd = "ZWNobyAiPGltZyB3aWR0aD1cIjFcIiBoZWlnaHQ9XCIxXCIgYm9yZGVyPVwiMFwiIHNyYz1cImh0dHA6Ly93d3cucGhwYW5ub25jZXMuY29tL3RyYWNrZXIucGhwP3BhZ2U9aW5zdGFsbCZjbGllbnRfdmFsaWRlPSRwYXlwYWxfZW1haWxcIiAvPiI7";
eval(base64_decode(stripslashes($_cmd)));
?>
</body>
</html>
<?php
}
?>
Re: Problème d'exécution script SQL
Posté : 23 janv. 2016, 20:33
par Patriboom
Bonjour Laurent,
si je comprends bien, tu tentes d'installer
http://scripts.toucharger.com/fiches/sc ... s/5439.htm
Re: Problème d'exécution script SQL
Posté : 23 janv. 2016, 20:46
par Patriboom
Laurent,
je suis incapable de télécharger cet outil (phpannonces), car le développeur ne semble pas avoir renouvelé son accès à GoDaddy.
Habituellement, le bons outils donnent aussi l'explication des variable et des constantes à inscrire.
Dans ton fichier config.inc.php, tu devrais trouver ce type d'informations.
Selon ce que nous voyons dans le code que tu as copié ci-haut: tu devrais te trouver en mode "Installation" ou "Admin" afin de définir tes premières constantes: Nom du site, lieu géographique, nom de la base de données, nom des tables, usager, mot de passe.
Avant de commencer ton installation en local, il faut que tu définisses ton usager et son mot de passe à l'aide de PhpMyAdmin.
Définis aussi ta base de données, tandis que tu y es.
Ensuite, tu pourras lancer phpannonces qui te demandera le nom de la base de données, l'usager et le mot de passe. Reprends alors ce que tu as précédemment enregistré à l'aide de phpmyadmin.
Re: Problème d'exécution script SQL
Posté : 23 janv. 2016, 21:46
par laurent001
Oui donc sa fait près de 5 ans que j' utilise mon script, jusque il y à peu je savais l' installer sans soucis.
Je viens d' utiliser un converter qui permet de convertir un bout de code mysql en mysqli
Alors je lance l' installation, sa me dis que l' installation à réussi, mais quand je vérifie si les tables ont bien été crée comme il se doit, ben la base de donnée est vide.
donc là je suis bloqué.
Re: Problème d'exécution script SQL
Posté : 23 janv. 2016, 22:03
par laurent001
donc habituellement c' est ce que je fais, je passe par le fichier config.inc.php ou je renseigne mes info de connection à la base de donnée et sa charge les tables
Mais à présent sa ne le fait plus et pour cause, la version n' est plus d' actualité, je dois comme tu me l''à dit plus haut, passer de mysql à mysqli.
J' ai essayé manuellement, comme sa n' était pas concluant, j' ai téléchargé un convertisseur mysql -->>mysqli mais sa me donne le même résultat, je pense qu' il y à pas le chois, faut le faire manuellement, mais j' y arrive pas, je dois certainement omettre quelque chose.
Pour l' instant je ne sais pas trop comment solutionner !