No database selected

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Michel DS

Michel DS

29/04/2012 10:25:44
Quote Anchor link
Ik gebruik normaal een functie voor de connectie maar om de oorzaak te zoeken heb ik het met dit scriptje simpel gehouden.

Ik krijg de foutmelding "No database selected" van mysql_error. Enkel...database bestaat, tabel bestaat.
Ik kan de zelfde SQL query uitvoeren in mysql DB en verkrijg het gewenste resultaat ! Dus database bestaat !

Ik moet wel zeggen dat de poort op 8081 staat anders werkte wamp niet !

De rechten staan op :
Gebruiker : root
Machine : localhost
Wachtwoord : Nee
Globale privileges : ALL PRIVILEGES
toekennen : Ja

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?php
    $Host
= "localhost";
    $Gebruiker = "root@localhost";
    $Wachtwoord = '';
    $DBNaam = "projecteasywebsite";

    $Verbinding = mysql_connect($Host, $Gebruiker, $Wachtwoord);
    
    if(!$Verbinding){ echo('Could not connect, please contact webmaster !');}

    else{
        mysql_select_db($DBNaam);
        
        $Opdracht = "Select * from tbl_link";        
        $ResultShow = mysql_query($Opdracht);

/////////////////////////////////////
echo mysql_error() ."<br/><br/>";
if(empty($ResultShow)){echo 'QUERY IS LEEG !!!'; }
///////////////////////////////////////////////
     
    While($Rij = mysql_fetch_array($ResultShow,MYSQL_BOTH)){
                echo $Rij[1];    
        }

            }

    mysql_close($Verbinding);    

 ?>
Gewijzigd op 29/04/2012 11:08:08 door Michel DS
 
PHP hulp

PHP hulp

04/05/2024 08:56:50
 
Noppes Homeland

Noppes Homeland

29/04/2012 11:51:05
Quote Anchor link
Tja, als je nu eerst op een logische en correcte manier foutafhandeling toepast dan kom je al een stuk verder.

if(!$Verbinding)
-> dit kan niet op deze manier gedaan worden

mysql_select_db($DBNaam);
-> blijkbaar worden er nooit schrijffouten begaan

if(empty($ResultShow)){
-> empty is een zinloze functie, daarnaast kan je dit ook niet op deze manier controleren

mysql_fetch_array($ResultShow,MYSQL_BOTH)
-> het heeft totaal geen zin om de assoc en de numeriek op te halen, daarnaast zal je in feite ook niets hebben aan de numeriek:
$rij[1] is dynamisch, het kan best zijn dat dat het resultaat van veld a teruggeeft maar een andere keer de waarde van veld b

Post - relevante - code zoals je die ook daadwereklijk toepast, want de foutmelding die je post past niet bij deze code
 
Michel DS

Michel DS

29/04/2012 14:35:37
Quote Anchor link
Ik heb de code wat aangepast en bekom nog steeds deze foutmelding "No database selected".
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\wamp\www\test\project\test2.php on line 15

Ik heb de DBname en tabelnaam gekopiëerd in mysql DB om zeker te zijn dat ik niet steeds een fout maak in de benaming. Dus de DBnaam en tabelnaam zijn 100* identiek.

En dit is het script dat de fout doet weergeven :
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
    $Host
= "localhost";
    $Gebruiker = "root@localhost";
    $Wachtwoord = '';
    $DBNaam = "projecteasywebsite";


    mysql_connect($Host, $Gebruiker, $Wachtwoord);
    mysql_select_db($DBNaam);
    $Opdracht = "select * from tbl_link";        
    $ResultShow = mysql_query($Opdracht);
    echo  mysql_error() ."<br/><br/>"; //dit is enkel bedoeld als foutopsporing
    mysql_close();
    
     $Rij = mysql_fetch_array($ResultShow);

    While($Rij){
    
        echo $Rij["userid"] . "<br />";
        echo $Rij["linktitle"]  . "<br />";
            
        }


 ?>



PS : wat bedoel je met :
mysql_select_db($DBNaam);
-> blijkbaar worden er nooit schrijffouten begaan
Gewijzigd op 29/04/2012 14:36:20 door Michel DS
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

29/04/2012 14:52:24
Quote Anchor link
Je4 zegt dat je niet de standaard port gebruikt, dus geef die eens mee bij de connectie, i.e localhost:8081
 
Michel DS

Michel DS

29/04/2012 15:03:52
Quote Anchor link
DAn geeft hij "wachten op localhost" weer in de statusbar maar doet verder niets dan te zoeken naar een verbinding.
In httpd.conf staat degelijk Listen 8081. ik kreeg acces denied bij de standaardpoort.

Na de 1ste installatie van wamp bleef de kleur van de wampicoon rechts oranje.
Skype gebruikte ik niet meer en had dit dus ook gewist. De regedit met Ccleaner opgekuist, wamp gewist. Terug met Ccleaner alles wat opgekuist en pc herstart. Dan terug wamp geïnstalleerde. Toen bleef het icoon ook in oranje staan !
Dus had ik het aangepast naar 8081 en icoon werd uiteindelijk groen.
Toen kreeg ik toegang tot mysql Db en alsook op localhost.

Ik kan werken met php pagina's in browser localhost maar kan geen verbinding maken blijkbaar met de tabel.

Pittig detail, ik moet wel http://localhost:8081 gebruiken maar localhost:8081 als hostname voor de databaseconnectie werkt zo niet. Connectie met DB is er wel met enkel "localhost" als hostname.
Gewijzigd op 29/04/2012 16:18:24 door Michel DS
 
- SanThe -

- SanThe -

29/04/2012 17:09:09
Quote Anchor link
Nette foutafhandeling zal je het juiste antwoord verschaffen. Nu blijft het gokken.
 
Michel DS

Michel DS

29/04/2012 17:19:29
Quote Anchor link
maar hoe dan ?

Heb vanalles geprobeerd :
ini_set('display_errors', 'On');
error_reporting(E_ALL);

$sql = "SELECT * FROM tabel";
$result = mysql_query($sql) or die('FOUT: '.mysql_error());

if(!$Verbinding){ echo('Could not connect, please contact webmaster !');}


Heb me suf gezocht op het net eer hier te posten ! En heb allerlei script uitgeprobeerd die allemaal hetzelfde deden in feite.

Dezelfde gegevens op een andere PC (zonder die poort 8081) werken wel !!! waarom op deze niet en heb een volledige clean instal uitgevoerd. Heb zelfs IIS voor windows eraf gegooid, met Ccleaner de regedit opgekuist, in regedit zelfs nog handmatig verder opgekuist omdat er steeds gegevens achter blijven, Skype gewist, op C schijf gezocht naar alles wat met PHP, IIS en MySql was gewist omdat deze ook niet was verwijderd bij de uninstall van die applicaities. Nogmaals goed uitgekuist met Ccleaner en PC heropgestart.
De laatste versie van WAMP 64 bit gedownload (windows 7) en geïnstalleerd.
Daarna bleek dat de basispoort niet werktte, ik moest er iets aan toevoegen (8081) om het te laten werken.
Dezelfde codes werken ergens anders wel maar op deze laptop niet ???
Gewijzigd op 29/04/2012 17:22:14 door Michel DS
 
Noppes Homeland

Noppes Homeland

29/04/2012 17:31:48
Quote Anchor link
Wat is er nu geschreven over fatsoenlijke foutafhandeling?

Dat is in ieder geval niet:
if(!$Verbinding){ echo('Could not connect, please contact webmaster !');}

En poortje 8081 of 80 - default - is het zwarte gat waar de apache webserver op luistert, dat heeft niets van doen met het poortje waarop je database luistert.

Gooi je php code dan eens in de prullenbak en pak er een goede basis tut bij die exact uitlegt hoe je een verbinding met een database dient op te zetten en welke foutafhandelingen daarbij dan van toepassing zijn.
 
Michel DS

Michel DS

29/04/2012 18:43:04
Quote Anchor link
Overal vind ik dezelfde foutafhandelingen maar anders geschreven. Allemaal dezelfde uitkomst.

Deze paar lijntjes :
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
$db_host
= "localhost";
$db_gebruiker = "root@localhost";
$db_wachtwoord = '';
$db_naam = "projecteasywebsite";
    

//connect to mysql database server
mysql_connect($db_host, $db_gebruiker, $db_wachtwoord) or die (mysql_error());
echo "Successfully connected to MySQL Database!<br><br>";
 
//Select Database
mysql_select_db($db_naam) or die (mysql_error());
echo '<h2>Successfully selected ' . $db_naam . ' database!</h2>';
?>


geeft mij :
Successfully connected to MySQL Database!

Access denied for user ''@'localhost' to database 'projecteasywebsite'

De rechten voor deze user staat :
Gebruiker - Machine - Wachtwoord - Globale privileges - Toekennen
root localhost Nee ALL PRIVILEGES Ja

Mysql heeft vanzelf nu ook een gebruiker aangemaakt !
root localhost:8081 Nee ALL PRIVILEGES Ja

-> localhost:8081 is het verschil.

Het probleem ligt in de toegang en niet in de codes ! Kheb er wel 10 verschillende geprobeerd dat ik overal heb gevonden in on-line tutorials !!! En overal gebruiker ze "or DIE" wat hier wordt afgeraden.

Waarom verkrijgt deze geen toegang als alles in orde staat in mysql ?
Waarom wou wamp niet op de normale poort werken -> icoon bleef oranje
Waarom moest ik de poort aanpassen om in phpadmin en localhost:8081 te kunnen gebruiken ?

DAT IS HET PROBLEEM !
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

29/04/2012 19:02:15
Quote Anchor link
Log eens in met root ipv root@localhost.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.