phpscript geen toegang, console wel tot MySQL

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Johan West

Johan West

30/01/2015 11:29:31
Quote Anchor link
Ik kan via een script geen toegang krijgen tot de database die ik heb aangemaakt.

Maak ik echter toegang via de console dan krijg ik wel toegang met root, maar niet met een user die ik heb aangemaakt.

De output van het PHP script is Unable to connect to database[MySQL server has gone away]
 
PHP hulp

PHP hulp

16/11/2024 15:57:34
 
Frank Nietbelangrijk

Frank Nietbelangrijk

30/01/2015 11:43:10
Quote Anchor link
En de hostnaam staat op localhost? Kun je de configurstie behalve password eens laten zien?
 
Johan West

Johan West

30/01/2015 12:01:08
Quote Anchor link
Ik zal dat dadelijk op je vraag ingaan.

Ik wil eerst nog even het volgende linkje delen http://codular.com/php-mysqli

ik heb de code uit deze zwarte vakken overgenomen en aangepast aan mijn database en tabellen, tot en met output query results
 
- Ariën  -
Beheerder

- Ariën -

30/01/2015 12:02:15
Quote Anchor link
Is het niet zo dat je na je $db->close(); nog wat uit probeert te voeren?
 
Johan West

Johan West

30/01/2015 12:04:54
Quote Anchor link
Dit is mijn script. Ik weet niet niet of de code zo klopt. Het kan ook zijn dat ik bepaalde configuratie instellingen van mysql moet wijzigen?

Script:
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
30
31
32
33
<?php
$db
= new mysqli('localhost:8080, user, password, databasenaam');
 
if ($db->connect_errno > 0){
    die('Unable to connect to database[' . $db->connect_error . ']');
}

 
$sql = <<<SQL
    SELECT *
    FROM 'tabel-naam'
SQL
;
 
if(!$result = $db->query($sql)){
    die('There was an error running the query[' . $db->error . ']');
}

 
while($row = $result->fetch_assoc()){
    
    echo $row['Naam'] . '<br />';
}

 
?>

 
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8" />
        <title>verbindt met database</title>
    </head>
    <body>
        
    </body>
</html>


.............................

Toevoeging op 30/01/2015 12:08:49:

Frank Nietbelangrijk op 30/01/2015 11:43:10:
En de hostnaam staat op localhost? Kun je de configurstie behalve password eens laten zien?


Ik begrijp je vraag niet helemaal, de hostnaam is toch localhost?

- Aar -:
Gelieve in het vervolg bij code de [code][/code]-tags gebruiken.
Hier kan je meer lezen over de mogelijke opmaakcodes.
Alvast bedankt!
Gewijzigd op 30/01/2015 12:09:31 door - Ariën -
 
- Ariën  -
Beheerder

- Ariën -

30/01/2015 12:13:54
Quote Anchor link
Haal die :8080 eens weg. Op die poort draait MySQL normaliter ook niet.
 
Johan West

Johan West

30/01/2015 13:14:41
Quote Anchor link
op poort 80 draait bij mij IIS. Ik heb de conf aangepast en ServerName localhost op 8080 gezet.
 
- Ariën  -
Beheerder

- Ariën -

30/01/2015 13:30:29
Quote Anchor link
Gebruik gewoon:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$db
= new mysqli('localhost', 'user', 'password', 'databasenaam');
?>
Gewijzigd op 30/01/2015 13:30:40 door - Ariën -
 
Johan West

Johan West

30/01/2015 13:44:30
Quote Anchor link
- Aar - op 30/01/2015 13:30:29:
Gebruik gewoon:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$db
= new mysqli('localhost', 'user', 'password', 'databasenaam');
?>


Dat werkt dus niet.
 
Jan de Laet

Jan de Laet

30/01/2015 13:46:11
Quote Anchor link
Ik hoop dat je user, password en database wel vervangen hebt met jouw gegevens.
Of moet zijn dat je database 'database' heet, je user 'user', enz..


Maar omdat je in je originele post zegt dat je met user via de console geen toegang kreeg, zou ik de rechten (o.a. op SQL en op de database) ook maar eens nakijken.
Gewijzigd op 30/01/2015 13:52:29 door Jan de Laet
 
Frank Nietbelangrijk

Frank Nietbelangrijk

30/01/2015 14:09:57
Quote Anchor link
Ehm.. Misschien moet je eerst even met gebruiker root proberen te verbinden dan.
Ik neem aan dat het PHP script op dezelfde machine draait als de mysql server? de mysql server draait standaard op poort 3306. maar Feitelijk hoef je die dan niet op te geven. Is het een eigen linux bakkie? zit de firewall soms de boel tegen te houden? Dat kun je simpel testen door deze tijdelijk uit te schakelen. Welke linux versie is het?
 
Thomas van den Heuvel

Thomas van den Heuvel

30/01/2015 14:35:44
Quote Anchor link
Afhankelijk van hoe je een database/user hebt aangemaakt met je root-account is het mogelijk nodig om de nieuwe privileges handmatig te verversen (of je MySQL proces te herstarten). Dit doe je met:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
FLUSH PRIVILEGES;


Daarnaast zullen er een aantal zaken uitgesloten moeten worden zoals Frank hierboven al aanhaalt, m.a.w. staan database-server en webserver op dezelfde machine zodat je ook inderdaad via localhost kunt connecten. En wanneer deze twee zaken op verschillende machines staan, accepteert de machine waarop je database-server staat en de database-server zelf connecties van de andere bak?

Je root account werkt, zeg je. Heb je al eens geprobeerd die gegevens in te vullen om een connectie te maken? Bij wijze van test, uiteraard. Je wilt niet permanent via een root account verbonden zijn. EDIT: als dit laatste werkt, weet je in ieder geval dat er geen obstructies zijn tussen "code" en "database".
Gewijzigd op 30/01/2015 14:37:55 door Thomas van den Heuvel
 
Johan West

Johan West

30/01/2015 14:37:41
Quote Anchor link
Nee het is WAMP.

Wat denken jullie van het script inhoudelijk? Zitten er fouten in?
 
Thomas van den Heuvel

Thomas van den Heuvel

30/01/2015 14:45:29
Quote Anchor link
Heb je de twee dingen in mijn reactie geprobeerd?

* FLUSH PRIVLEGES zou ervoor kunnen zorgen dat de credentials van je nieuwe user/database actief worden.
* probeer anders een connectie te maken met je root-gegevens bij wijze van test

Draait je MySQL-proces (service) uberhaupt wel?
 
Johan West

Johan West

30/01/2015 18:39:04
Quote Anchor link
alles draait.

Ik ben geïnteresseerd in de werking van het script. Klopt deze? Of zitten er fouten in?
 
Jan de Laet

Jan de Laet

30/01/2015 18:55:37
Quote Anchor link
De WHILE loop van regel 17-22 zou beter binnen de html staan, bijv regel 31.
 
Frank Nietbelangrijk

Frank Nietbelangrijk

31/01/2015 11:41:23
Quote Anchor link
Jan de Laet op 30/01/2015 18:55:37:
De WHILE loop van regel 17-22 zou beter binnen de html staan, bijv regel 31.


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
FROM 'tabel-naam'


Geen qoutes gebruiken om tabel- en kolomnamen. Doe gewoon:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
FROM tabelnaam


Tevens valt het mij op dat je hoofdletters gebruikt in je kolomnamen. Niet verboden maar mijn advies is hou het makkelijk voor je zelf en hou tabel- en kolomnamen in uitsluitend kleine letters
 
Thomas van den Heuvel

Thomas van den Heuvel

31/01/2015 14:43:06
Quote Anchor link
- geen eenduidige character encoding in dit alles: kies één character encoding en pas deze overal toe (PHP/HTML/database)

- je stelt geen character encoding in in het document, ook geef je die niet mee in PHP
Gebruik header('Content-type: text/html; charset=UTF-8'); als je UTF-8 gebruikt
of zet een meta-tag in je HTML-document (nog voor je title of andere info)

- je stelt geen character encoding in bij het maken van een connectie met je database
dit is een 'recipe for disaster' als je dit later repareert, maar al een heleboel data (op de verkeerde manier) naar je database hebt weggeschreven

- je escaped output (tekst die je afdrukt) niet met bijvoorbeeld htmlspecialchars() <-- deze functie heeft ook weer een character encoding nodig
dit kan mogelijk tot gevolg hebben dat user-data de HTML-opbouw van je pagina breekt of JavaScript uitvoert omdat die content niet van haar speciale betekenis ontdaan is
 
Johan West

Johan West

31/01/2015 18:37:58
Quote Anchor link
Ok iig erg bedankt voor jullie pogingen mij te helpen.

Ik heb via andere scripts uiteindelijk connectie met de dbase en een query kunnen doen.

Opgelost en topic kan wat mij betreft gesloten.
 



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.