Bonjour
J'ai un problème de connexion à MySQL. J'ai déjà résolu un premier problème relatif aux erreurs de syntaxe dans mon code PHP à travers les indications de Mr Sabotge( que je remercie de passage pour sa contribution) . Après plusieurs vérifications sur mes configurations j'ai fait en sorte que j'affiche les erreurs PHP sur mon navigateur. Ainsi à l'exécution du code (partie formulaire non incluse...) ci-dessous :
j'obtiens le message d'erreur : Fatal error: Call to undefined function mysql_connect() in A:\projects\webdir\php\initiationWeb\livre_dor.php on line xx . La ligne xx correspond à l'instruction en première ligne du code ci-dessus.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49 <?php mysql_connect("localhost", "usernoroot", "passwdfordb"); mysql_select_db("db_name"); /* 1) Enregistrement d'un message envoyé : */ if(isset($_POST['pseudo']) AND isset($_POST['message'])) { $pseudo = $_POST['pseudo']; $message = $_POST['message']; $message = nl2br($message); mysql_query("INSERT INTO livre_dor(id, pseudo, message) VALUES ('', '" . $pseudo . "', '" . $message . "')") or die(mysql_error()); } /* 2) Ecriture des liens vers les pages : */ // Fixation du nombre de message par page : $message_number_per_page = 20; // Récupération du nombre total de message : $contened_message = mysql_query('SELECT COUNT(*) AS nbr_message FROM livre_dor') or die(mysql_error()); $message_number_temp = mysql_fetch_array($contened_message); $total_message_number = $message_number_temp['nbr_message']; // Détermination du nombre total de page : $page_number = ceil($total_message_number/$message_number_per_page); // Affichage des pages echo 'Page : '; for($i = 1; $i < $page_number; $i++) { echo '<a href="livre_dor.php?page=' . $i. '">' . $i . '</a>'; } ?> <!-- 3) Ecriture des messages : --> <?php if(isset($_GET['page'])) { $page = $_GET['page']; // Récupération du numéro de la page : } else { $page = 1; // Si y a pas de page c'est que on se connecte la première fois } // Recherche du nombre de message à afficher tout en limitant ce nombre par mysql LIMIT $limit_message = ($page - 1)*$message_number_per_page; $message_to_display = mysql_query('SELECT * FROM livre_dor ORDER By id DESC LIMIT ' . $limit_message. ',' . $message_number_per_page) or die(mysql_error()); while($resultat = mysql_fetch_array($message_to_display)) { echo '<p><strong>' . $resultat['pseudo'] . '</strong> a ecrit : <br />' . $resultat['message']. '</p>'; } mysql_close(); ?>
J'ai vérifié que la base de donnée db_name existe bien dans MySQL et qu'elle contient la table livre_dor. J'ai aussi bien vérifié le code PHP cette fois. Je ne sais pas d'où peut se situer mon problème.
J'ai lu sur des forum des problèmes similaires. Mais certaines solutions mises en œuvre existent chez moi et le problème persiste toujours. En effet, comme PHP est utilisé comme module Apache, j'ai bien copié le fichier libmysql.dll dans WINDOWS/System32. Et voici des extraits de mes fichiers php.in:
et config.inc.php :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58 [PHP] ;... ;;;;;;;;;;;;;;;;;;;; ; Language Options ; ;;;;;;;;;;;;;;;;;;;; ; Enable the PHP scripting language engine under Apache. engine = On ;... ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Error handling and logging ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; error_reporting = E_ALL display_errors = On display_startup_errors = Off log_errors = On ;... ;;;;;;;;;;;;;;;;;;;;;;;;; ; Paths and Directories ; ;;;;;;;;;;;;;;;;;;;;;;;;; doc_root = user_dir = extension_dir = "Z:/install dir/php_apache_mysql/ext/" ;... ;;;;;;;;;;;;;;;;;;;;;; ; Dynamic Extensions ; ;;;;;;;;;;;;;;;;;;;;;; extension=msql.dll extension=php_bz2.dll extension=php_gd2.dll extension=php_mbstring.dll extension=php_mcrypt.dll extension=php_msql.dll extension=php_mysqli.dll ;... ;;;;;;;;;;;;;;;;;;; ; Module Settings ; ;;;;;;;;;;;;;;;;;;; ;... [MySQL] mysql.allow_persistent = On mysql.max_persistent = -1 mysql.max_links = -1 mysql.default_port = mysql.default_socket = mysql.default_host = mysql.default_user = mysql.default_password = ;... [MySQLi] mysqli.max_links = -1 mysqli.default_port = 3306 mysqli.default_socket = mysqli.default_host = mysqli.default_user = mysqli.default_pw = mysqli.reconnect = Off ;...
Au départ, ma variable $cfg['Servers'][$i]['auth_type'] était positionné sur 'cookie'; en le fixant sur 'http'(à utiliser si PHP est installer comme module d'Apache?) , rien ne change. La ligne $cfgPmaAbsoluteUri = 'http://127.0.1.1/phpmyadmin' est tirée d'un bouquin. Est ce opprtun de l'utiliser dans mon cas?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 <?php $cfg['blowfish_secret'] = ''; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */ $i = 0; $i++; /* Authentication type */ /* $cfg['Servers'][$i]['auth_type'] = 'cookie'; Utilisé si PHP pas installé comme module Apache */ $cfg['Servers'][$i]['auth_type'] = 'http'; /*Utilisé si PHP estinstallé comme module Apache*/ /* Server parameters */ $cfg['Servers'][$i]['host'] = 'localhost'; $cfg['Servers'][$i]['connect_type'] = 'tcp'; $cfg['Servers'][$i]['compress'] = false; $cfg['Servers'][$i]['extension'] = 'mysqli'; $cfg['Servers'][$i]['controluser'] = 'pma'; $cfg['Servers'][$i]['controlpass'] = 'pmapass'; $cfg['Servers'][$i]['pmadb'] = 'phpmyadmin'; $cfg['Servers'][$i]['bookmarktable'] = 'pma_bookmark'; $cfg['Servers'][$i]['relation'] = 'pma_relation'; $cfg['Servers'][$i]['table_info'] = 'pma_table_info'; $cfg['Servers'][$i]['table_coords'] = 'pma_table_coords'; $cfg['Servers'][$i]['pdf_pages'] = 'pma_pdf_pages'; $cfg['Servers'][$i]['column_info'] = 'pma_column_info'; $cfg['Servers'][$i]['history'] = 'pma_history'; $cfg['Servers'][$i]['designer_coords'] = 'pma_designer_coords'; $cfg['UploadDir'] = ''; $cfg['SaveDir'] = ''; $cfgPmaAbsoluteUri = 'http://127.0.1.1/phpmyadmin'; ?>
Je suis réellement coincé sur cette question ;je remercie donc tout celui ou celle qui voudrait me débloquer sur ce problème. Merci encore une fois pour la contribution de chacun.
Partager