mysqsl_close laat mij page nooit zien.
Ik ben in net bezig met MySQL.
Steeds als er ergens in een script mysql afgesloten wordt,
krijg ik de melding "de verbinding werd geherinitialiseerd"
en krijg ik de pagina of eventuele errors en notices niet te zien.
Als ik mysql_close() weglaat, laadt de pagina wel zoals het hoort.
Kan iemand mij vertellen wat er aan hand is ?
Alvast bedankt.
Quote:
krijg ik de pagina of eventuele errors en notices niet te zien
Wanneer wel dan? Want als je mysql_close gebruikt dan laad hij zoals het hoort ? Wat meer informatie kan geen kwaad dus ;)
- Plaats errors
- Plaats relevante code
Gewijzigd op 29/12/2010 09:56:03 door Niels K
Code (php)
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
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
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<title>View My Blog</title>
</head>
<body>
<?php // Script 12.7 - view_blog.php
// This script retrieves blog entries from the database.
// Connect and select:
$dbc = mysql_connect('localhost', 'root', '******');
mysql_select_db('myblog');
// Define the query:
$query = 'SELECT * FROM entries ORDER BY date_entered DESC';
if ($r = mysql_query($query)) { // Run the query
// Retrieve and echo every record:
while ($row = mysql_fetch_array($r)) {
echo "<p><h3>{$row['title']}</h3>
{$row['entry']}<br />
<a href=\"edit_entry.php?id={$row['entry_id']}\">Edit</a>
<a href\"delete_entry.php?id={$row['entry_id']}\">Delete</a>
</p><hr />\n";
}
} else { // Query didn't run.
echo '<p style="color:red;">Could not retrieve the data because:
<br />' . mysql_error() . '</p>
<p>The query being run was: '. $query . '</p>';
} // End of query IF.
mysql_close(); // Close the database connection.
?>
</body>
</html>
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<title>View My Blog</title>
</head>
<body>
<?php // Script 12.7 - view_blog.php
// This script retrieves blog entries from the database.
// Connect and select:
$dbc = mysql_connect('localhost', 'root', '******');
mysql_select_db('myblog');
// Define the query:
$query = 'SELECT * FROM entries ORDER BY date_entered DESC';
if ($r = mysql_query($query)) { // Run the query
// Retrieve and echo every record:
while ($row = mysql_fetch_array($r)) {
echo "<p><h3>{$row['title']}</h3>
{$row['entry']}<br />
<a href=\"edit_entry.php?id={$row['entry_id']}\">Edit</a>
<a href\"delete_entry.php?id={$row['entry_id']}\">Delete</a>
</p><hr />\n";
}
} else { // Query didn't run.
echo '<p style="color:red;">Could not retrieve the data because:
<br />' . mysql_error() . '</p>
<p>The query being run was: '. $query . '</p>';
} // End of query IF.
mysql_close(); // Close the database connection.
?>
</body>
</html>
Toevoeging op 29/12/2010 09:59:05:
Het gaat erom dat mn pagina meteen weer afgesloten wordt,
als er ergens in het script, mysql_close() staat.
Ik krijg de pagina dus nooit te zien.
Toevoeging op 29/12/2010 10:05:46:
Zou ik hier een IF statement moeten gebruiken,
en een submit button, zodat mysql gesloten wordt op het moment dat,
er ge-submit wordt ?
Gewijzigd op 29/12/2010 10:00:25 door Mark de Grebber
Overigens:
- PHP moet je boven je HTML zetten, en gewoon html & php gescheiden houden
- Foutenafhandeling ontbreekt
- Selecteer wat je wilt hebben gebruik geen *
- mysql_fetch_array kan je in dit geval gewoon het beste in mysql_fetch_assoc veranderen, is een stuk sneller.
- Variabelen buiten de quotes
Gewijzigd op 29/12/2010 10:09:31 door Niels K
maar dit is niet mijn script , dit is een lesboek.
Ik ben echt net een paar uur bezig met mysql en snap niet waarom
m'n pagina geherinitialiseerd wordt (en dus niet getoond) als
er mysql close() in het script staat.
Als ik mysql_close() weglaat ,krijg ik m'n pagina WEL te zien en kan ik het editen.
Mijn vraag is dus:
Is het normaal dat ik m'n pagina niet te zien krijg als mysql afgesloten wordt,
OF is het een instelling in een ini die ik moet veranderen ?
Gewijzigd op 29/12/2010 10:16:48 door Mark de Grebber
Maar goed, jouw probleem. Naar mijn weten hoort het te werken, maar goed zet dit eens bovenaan je script.
Code (php)
1
2
3
4
2
3
4
<?php
ini_set('display_errors',1); // 1 == aan , 0 == uit
error_reporting(E_ALL | E_STRICT);
?>
ini_set('display_errors',1); // 1 == aan , 0 == uit
error_reporting(E_ALL | E_STRICT);
?>
Ik krijg nog steeds de melding:
"de verbinding met de server werd geherinitialiseerd
tijdens het laden van de pagina."
Deze melding krijg ik NIET als ik mysql niet afsluit aan het einde van het script,
En kan ik de pagina gewoon gebruiken.
(Misschien handig om te melden dat ik WAMP gebruik en alles lokaal draai)
Gewijzigd op 29/12/2010 10:27:06 door Mark de Grebber
Ok :) Nogmaals, mysql_close is nergens voor nodig. Maar verwerk mijn punten eens die ik hier boven heb gegeven, en plaats dan nogmaals je code.
[vraagje]
mysql wordt dus vanzelf beeindigd als de pagina verlaten wordt?
Oh, ik herinner me ineens dat er een bug was in php met mysql_close. je gebruikt zeker php 5.3? Oplossing was gewoon je resource meegeven. Jouw geval dus dbc.
en ik begrijp niet echt wat je bedoeld met resource meegeven,
maar dat kan ik zelf wel vinden denk ik.
(Ik wil niet ALLES moeten vragen op het forum, alleen als ik er ECHT niet uitkom)
Heel erg bedankt voor de hulp, ik ga kijken of ik iets kan vinden over de bug.
Gewijzigd op 29/12/2010 10:45:51 door Mark de Grebber
Eerste plaats waar je zou moeten zoeken
http://be.php.net/mysql_close
Example #1 geeft je al direct je antwoord.
Ik weet nu hoe ik moet oplossen.
Inderdaad zoals je zei: mysql_close($dbc).
Nogmaals bedankt.
(Beste wensen voor 2011 alvalst)
Geen probleem, en succes met het verbeteren van je script. En uiteraard ook de beste wensen.