Wie wil dit script voor database connectie nakijken?
Zojuist heb ik het volgende script gemaakt voor een database connectie:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
# vars to connect to database, neatly to adapt to your own settings
$database = "";
$mysqlhost = "localhost";
$mysql_username = "";
$mysql_password = "";
# connect to a database
if (@mysql_connect($mysql_host, $mysql_username, $mysql_password)) {
if (!mysql_select_db($database)) {
# if database is not selected, create database
mysql_query("CREATE DATABASE {$database}");
# if table do not exist, create table
if (!@mysql_query("INSERT INTO table (user_urls) VALUES ({$curr_url}) ")) {
mysql_query("CREATE TABLE table (
user_urls VARCHAR(500) NOT NULL)");
}
} else {
echo "Database is not selected" . mysql_error() ."";
}
}
?>
# vars to connect to database, neatly to adapt to your own settings
$database = "";
$mysqlhost = "localhost";
$mysql_username = "";
$mysql_password = "";
# connect to a database
if (@mysql_connect($mysql_host, $mysql_username, $mysql_password)) {
if (!mysql_select_db($database)) {
# if database is not selected, create database
mysql_query("CREATE DATABASE {$database}");
# if table do not exist, create table
if (!@mysql_query("INSERT INTO table (user_urls) VALUES ({$curr_url}) ")) {
mysql_query("CREATE TABLE table (
user_urls VARCHAR(500) NOT NULL)");
}
} else {
echo "Database is not selected" . mysql_error() ."";
}
}
?>
Zover ik het kan bekijken zie ik geen fout hierin, maar het werkt niet, dus het moet wel :-)
Iemand?
Gewijzigd op 01/01/1970 01:00:00 door Kvdd
En daarnaast wil je eigenlijk ook niet in een script dat er zomaar databases of tabellen aangemaakt worden. Die acties zou je eventueel eenmalig in een config script op kunnen nemen, maar dat is dan ook alles.
Blanche schreef op 27.07.2007 09:53:
@-jes om je fouten te onderdrukken? Vind je het gek dat je niet ziet wat er eventueel fout gaat. Sloop die tijdens het debuggen dus allereerst uit je code.
En daarnaast wil je eigenlijk ook niet in een script dat er zomaar databases of tabellen aangemaakt worden. Die acties zou je eventueel eenmalig in een config script op kunnen nemen, maar dat is dan ook alles.
En daarnaast wil je eigenlijk ook niet in een script dat er zomaar databases of tabellen aangemaakt worden. Die acties zou je eventueel eenmalig in een config script op kunnen nemen, maar dat is dan ook alles.
Oke oke, my bad :-) zo programmeer ik meestal, omdat de gebruiker niet een lijst foutmeldingen moet krijgen. Maar gelijk heb je.
Dus niemand ziet hier iets fout in?
ff die @tjes eruit halen..
kvdd schreef op 27.07.2007 10:26:
Oke oke, my bad :-) zo programmeer ik meestal, omdat de gebruiker niet een lijst foutmeldingen moet krijgen. Maar gelijk heb je.
Ehm juist? Je moet gewoon netjes scripten ;)
Gewijzigd op 01/01/1970 01:00:00 door Paul K
Quote:
Tja, vang de fouten dan gewoon netjes af en maak er nette foutmeldingen van. @-tjes zijn niet verkeerd, als je maar wel zorgt dat je eventuele fouten die optreden afvangt. En dat doe je nu ook niet! (Ik mis bijvoorbeeld het else statement behorende bij je eerste if)(...) omdat de gebruiker niet een lijst foutmeldingen moet krijgen
Blanche schreef op 27.07.2007 10:32:
(Ik mis bijvoorbeeld het else statement behorende bij je eerste if)
?? een if hoeft toch helemaal niet persee een else te hebben?
if (dit is waar) doe dan dit...
ik vind het altijd juist handig, met of zonder else
wat doe ik dan fout?
ps. Een voorbeeldje:
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?php
if(!@mysql_connect('host', 'user', 'pass'))
{
echo 'Database verbindingsfout: '.mysql_error();
}
else
{
// ...
}
?>
if(!@mysql_connect('host', 'user', 'pass'))
{
echo 'Database verbindingsfout: '.mysql_error();
}
else
{
// ...
}
?>
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
Blanche schreef op 27.07.2007 10:37:
Ja klopt, maar als je een @ in je if-statetment gebruikt, worden eventuele fouten dus niet weergegeven. Als je if-statement dus niet voldoet omdat de verbinding niet gelegd kan worden, moet je in dat geval wel een else statement hebben waarin je een foutmelding kunt geven!
ps. Een voorbeeldje:
ps. Een voorbeeldje:
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?php
if(!@mysql_connect('host', 'user', 'pass'))
{
echo 'Database verbindingsfout: '.mysql_error();
}
else
{
// ...
}
?>
if(!@mysql_connect('host', 'user', 'pass'))
{
echo 'Database verbindingsfout: '.mysql_error();
}
else
{
// ...
}
?>
Okay, bedoel je dat, ik dacht dat jij bedoelde dat een if persee een else moet hebben. Maar dat is natuurlijk niet zo.
Ik bericht zo nog even wat ik fout heb gedaan, waarom het nu niet werkt.
Edit: laat maar, de if's en else's werken mekaar gruwelijk tegen.
Sorry voor het in beslag leggen van jullie tijd!
Gewijzigd op 01/01/1970 01:00:00 door kvdd
Verder voer je nergens meer controles uit op de queries die je vanaf regel 13 gebruikt. Dat moet je natuurlijk wel even doen.
Blanche schreef op 27.07.2007 11:07:
Die echo op regel 20 klopt niet, dat is immers de succesvariant van het selecteren van de database. Op regel 11 controleer je immers of dat mislukt is.
Verder voer je nergens meer controles uit op de queries die je vanaf regel 13 gebruikt. Dat moet je natuurlijk wel even doen.
Verder voer je nergens meer controles uit op de queries die je vanaf regel 13 gebruikt. Dat moet je natuurlijk wel even doen.
Ja, je hebt helemaal gelijk, dat bedoelde ik ook met mijn vorige post.
Hier heb je mn code op dit moment:
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
# vars to connect to database, neatly to adapt to your own settings
$database = "";
$mysql_host = "localhost";
$mysql_username = "";
$mysql_password = "";
# connect to a database
if (mysql_connect($mysql_host, $mysql_username, $mysql_password)) {
if (!mysql_select_db($database)) {
# if database is not selected, create database
mysql_query("CREATE DATABASE {$database}");
}else{
# if table does not exist, create table
if (!mysql_query("INSERT INTO table(user_urls)VALUES({$curr_url})")) {
echo mysql_error();
mysql_query("CREATE TABLE table (
user_urls VARCHAR(500) NOT NULL)");
}
}
}else{
echo mysql_error();
}
?>
# vars to connect to database, neatly to adapt to your own settings
$database = "";
$mysql_host = "localhost";
$mysql_username = "";
$mysql_password = "";
# connect to a database
if (mysql_connect($mysql_host, $mysql_username, $mysql_password)) {
if (!mysql_select_db($database)) {
# if database is not selected, create database
mysql_query("CREATE DATABASE {$database}");
}else{
# if table does not exist, create table
if (!mysql_query("INSERT INTO table(user_urls)VALUES({$curr_url})")) {
echo mysql_error();
mysql_query("CREATE TABLE table (
user_urls VARCHAR(500) NOT NULL)");
}
}
}else{
echo mysql_error();
}
?>
Zoals je ziet is de foutcontrole op dit moment beter afgehandeld, en het script werkt helemaal. Dat deed het al, maar de else stond verkeerd, hij gaf aan dat de verbinding niet goed was door een zelfgeplaatste echo. Terwijl het script dus juist functioneerde!
Bedankt allemaal! :-)
Gewijzigd op 01/01/1970 01:00:00 door kvdd
Mijn Tip: Altijd alles 'even checken'.