Verbinding maken met MySql

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Henk Woeltjes

Henk Woeltjes

26/07/2014 15:06:06
Quote Anchor link
Ik ben bezig met een cursus PHP&MySQL.
Ik heb WAMP (incl. MySQL) geïnstalleerd maar volgens mij is er iets mis met de installatie of moet ik nog dingen veranderen in de installatie. Hoe het ook zij ik krijg geen verbinding met MySQL. Ik heb in MySQL al een database aangemaakt onder de naam 'mijn_databank'.
Ik heb van alles geprobeerd, bijv. het onderstaande bestandje opgeslagen als db_config.php en dat vervolgens laten oproepen in de browser. Dus: localhost/db_config.php Maar ik blijf een leeg scherm krijgen.

Is er een mogelijkheid om de installatie van MySQL te testen?


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
$db_config
['server'] = 'localhost';
$db_config['username'] = 'root';
$db_config['database'] = 'mijn_databank';

mysql_connect($db_config['server'], $db_config['username']) or die (mysql_error());

?>


Ik hoop van harte dat iemand mij kan helpen!!!
 
PHP hulp

PHP hulp

18/04/2024 09:28:56
 
- Ariën  -
Beheerder

- Ariën -

26/07/2014 15:21:27
Quote Anchor link
Waar is je password in je mysql_connect()??
En waar verbind je met de database met mysql_select_db?

Even voor de goede orde: Kijk ook eens naar MySQLi, deze functiebibliotheek is recenter dan de MySQL-functiebibliotheek die je nu gebruikt.
Gewijzigd op 26/07/2014 15:23:23 door - Ariën -
 
Shamrock Modelbouw

Shamrock Modelbouw

26/07/2014 15:26:54
Quote Anchor link
Ik zou idd ook naar mysqli kijken ipv mysql.

Daarbij, ook al heb je de juiste connectie, de pagina zal leeg blijven.

Via php.net onderstaande code gehaald:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?PHP

$mysqli
= new mysqli("localhost", "user", "password", "database");

if ($mysqli->connect_errno)
{

    echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

?>


Als je een lege pagina te zien krijgt werkt alles, krijg je de foutmelding dan weet je dat er iets niet goed is ingevuld.

Als je de lege pagina te zien krijgt weet je dus dat je een selectquery of insertquery ofzo kunt gebruiken

Succes!
 
Henk Woeltjes

Henk Woeltjes

26/07/2014 15:57:38
Quote Anchor link
Ik heb de code van php.net gebruikt. Daarbij heb ik als gebruikersnaam 'root' ingevuld. Een wachtwoord heb ik volgens mij niet aangegeven.
Nu krijg ik geen leeg scherm maar de volgende foutmelding:

( ! ) Warning: mysqli::mysqli() [<a href='mysqli.mysqli'>mysqli.mysqli</a>]: (28000/1045): Access denied for user 'root'@'localhost' (using password: YES) in C:\wamp\www\db_config.php on line 10

Call Stack
# Time Memory Function Location
1 0.0012 365320 {main}( ) ..\db_config.php:0
2 0.0012 367528 mysqli->mysqli( ) ..\db_config.php:10

Failed to connect to MySQL: (1045) Access denied for user 'root'@'localhost' (using password: YES)
 
Frank Nietbelangrijk

Frank Nietbelangrijk

26/07/2014 16:01:38
Quote Anchor link
je gebruikersnaam / wachtwoord is niet juist.

Toevoeging op 26/07/2014 16:03:40:

Je springt nu wel van de hak op de tak. Je laat ons eerst een stuk code zien en daarna ga je met andere code aan de slag. Dat schiet niet op natuurlijk. En bovendien HET KLOPTE dat je een lege pagina kreeg!
 
Shamrock Modelbouw

Shamrock Modelbouw

26/07/2014 16:04:44
Quote Anchor link
standaard is de gebruikersnaam geloof ik root en wachtwoord leeg

Als dat zo is gebruik je dit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$mysqli = new mysqli("localhost", "root", "", "mijn_databank");
 
Henk Woeltjes

Henk Woeltjes

26/07/2014 16:22:30
Quote Anchor link
Dankjewel, nu krijg ik idd weer een leeg scherm. Dus volgens jullie is dat een teken dat er een verbinding is met MySQL.
Dus als ik het goed begrepen heb,als ik nu een tabel aanmaak met een aantal kolommen moet deze op deze manier zichtbaar zijn?
 
Frank Nietbelangrijk

Frank Nietbelangrijk

26/07/2014 16:27:01
Quote Anchor link
ja

maar om zonder tabellen aan te maken iets uit de database te toveren kun je dit doen:
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
<?php
$db_config
['server'] = 'localhost';
$db_config['username'] = 'root';
$db_config['password'] = '';
$db_config['database'] = 'mijn_databank';

$con = mysqli_connect($db_config['server'], $db_config['username'], $db_config['password']);
if (!$con) {
    echo 'Er kon geen verbinding gemaakt worden met de database: ' . mysqli_error();
    exit;
}

echo '<h3>Verbinding met de database is opgezet.</h3>';
echo '<h3>Dit zijn de databases die voorhanden zijn op de server:</h3>';

$result = mysqli_query($con, 'SHOW DATABASES');
while($row = mysqli_fetch_assoc($result))
{

    echo $row['Database'] . '<br>';
}

?>


Toevoeging op 26/07/2014 16:29:23:

Wij geven je bewust voorbeelden met de mysqli extensie omdat de mysql_ extensie verouderd is en in toekomstige PHP versies misschien niet meer zal werken
 
Henk Woeltjes

Henk Woeltjes

26/07/2014 16:30:21
Quote Anchor link
Dankjewel Frank, ben weer een stukje verder op weg.
 
Frank Nietbelangrijk

Frank Nietbelangrijk

26/07/2014 16:34:55
Quote Anchor link
Als het goed is zit er ook phpMyAdmin bij de installatie van wamp. daar kun je eenvoudig tabellen aanmaken en vullen met voorbeelddata
Gewijzigd op 26/07/2014 16:35:19 door Frank Nietbelangrijk
 
Henk Woeltjes

Henk Woeltjes

06/08/2014 17:22:13
Quote Anchor link
Ik kom weer niet verder!!!
Ik heb nu idd verbinding met MySQL maar ik wil nu vanuit PHP een database met de naam "oefening" aanmaken.
Dat probeer ik met het volgende PHP-script:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
$linkID
= mysql_connect('localhost', 'root', '');
mysql_create_db('oefening', $linkID);
mysql_select_db('oefening');
$query = "CREATE TABLE fears (
          id INT NOT NULL AUTO_INCREMENT PRIMERY KEY,
          )"
;
$result = mysql_query($QUERY_STRING);

?>


Dan krijg ik echter de volgende melding:


(!) Fatal error: Call to undefined functie mysql_create_db () in C: \ wamp \ www \ create_db.php on line 13
Call Stack
# Tijd Geheugen Functie Plaats
1 0.0015 366136 {Main} () .. \ Create_db.php : 0


Wat doe ik nu weer verkeerd, of wat zie ik nu weer over het hoofd?
 
Ivo P

Ivo P

06/08/2014 17:49:03
Quote Anchor link
http://nl3.php.net/mysql_create_db

je kunt ook gewoon met een query (zie link) een database aanmaken.

Maar maak een keuze: gebruik mysql of mysqli (bij voorkeur de laatste, dan werkt je script ook in de volgende versie van php)
 
Henk Woeltjes

Henk Woeltjes

08/08/2014 17:35:30
Quote Anchor link
Ik blijf maar worstelen met dat MySQL.
Ik kan nu een database aanmaken.

Ik heb een database aangemaakt met de naam 'oefening'
Vervolgens in deze database een tabel met de naam 'Persons'
Deze tabel wil ik als volgt vullen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$con
=mysqli_connect("localhost","root","","oefening");
// Check connection
if (mysqli_connect_errno()) {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

mysqli_query($con,"INSERT INTO Persons (VoorNaam, AchterNaam, Leeftijd)
VALUES ('Peter', 'Griffin',35)"
);

mysqli_query($con,"INSERT INTO Persons (VoorNaam, AchterNaam, Leeftijd)
VALUES ('Glenn', 'Quagmire',33)"
);
mysqli_close($con);
?>


Dit werkt echter voor geen meter.

Ook probeer ik het rechtstreeks in MySQL op de volgende manier:

INSERT INTO `persons`(`VoorNaam`, `Achternaam`, `Leeftijd`) VALUES ([Peter],[Griffin],[35])

Dan krijg ik echter de volgende foutmelding:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '[Peter],[Griffin],[35])' at line 1

Ik diverse boeken doorgespit en verschillende site's bezocht en volgens mij doe ik het toch echt goed.

Help Me alsjeblieft!!!!


Toevoeging op 08/08/2014 17:36:44:

Nog even ter extra info! Ik werk in WAMP
 
Ivo P

Ivo P

08/08/2014 17:43:09
Quote Anchor link
INSERT INTO `persons`(`VoorNaam`, `Achternaam`, `Leeftijd`) VALUES ([Peter],[Griffin],[35])

dat moet dan gewoon met ' ' gedaan he

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
INSERT INTO persons (VoorNaam, Achternaam, Leeftijd) VALUES
('Peter','Griffin', '35')


weet je zeker dat je een Mysql tutorial volgt? die [ ] heb ik bij Access wel eens gezien dacht ik.

Let er ook op dat onder Linux de tabelnaam hoofdletter gevoelig is: Persons is wat anders dan persons
 
Henk Woeltjes

Henk Woeltjes

08/08/2014 17:59:07
Quote Anchor link
Het lukt nou idd rechtstreeks in MySQL. Daarvoor mijn dank.

Maar waarom lukt het nog steeds niet vanuit PHP?
 
Ivo P

Ivo P

08/08/2014 18:10:59
Quote Anchor link
http://wiki.pfz.nl/mysql-foutafhandeling-in-php/

nog geschreven met mysql-functies ipv mysqli, maar het idee is hetzelfde: zorg dat je bij een niet lukkende query een foutmelding krijgt (die zijn vaak best verhelderend)
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

08/08/2014 18:33:23
Quote Anchor link
Ivo P op 08/08/2014 17:43:09:

weet je zeker dat je een Mysql tutorial volgt? die [ ] heb ik bij Access wel eens gezien dacht ik.

Ja bij de identifiers, dus
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
SELECT [tabelnaam].[kolomnaam] FROM [dbnaam].[tabelnaam] ......

Maar gewoon zonder omsluitingen, dat is de standaard SQL'

Ivo P op 08/08/2014 17:43:09:
Let er ook op dat onder Linux de tabelnaam hoofdletter gevoelig is: Persons is wat anders dan persons

Nee hoor tussen de backticks is het hoofdlettergevoelig, anders niet.
Heeft niets met besturingssysteem te maken.
 
Goto Learn

Goto Learn

08/08/2014 19:41:27
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
PRIMERY
->
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
PRIMARY


Moet dit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$result = mysql_query($QUERY_STRING);


Niet zijn?:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$result = mysql_query($query);



Ah, tis al opgelost.. Ik was beetje laat met reageren.
Gewijzigd op 08/08/2014 19:53:20 door Goto Learn
 
Ivo P

Ivo P

09/08/2014 04:17:06
Quote Anchor link
Tabelnamen komen terug in de bestandsnamen op de server. Unix is case sensitive (index.php <> INDEX.php)
En dus ook de tabelnaam.

http://dev.mysql.com/doc/refman/5.6/en/identifier-case-sensitivity.html
 
Frank Nietbelangrijk

Frank Nietbelangrijk

09/08/2014 08:53:58
Quote Anchor link
Volgens mij ook Ivo. Ik heb echter nooit geprobeerd of tabelnamen hoofdletter gevoelig zijn want ik schrijf ze standaard uitsluitend met kleine letters. gebruik van backtics heb ik ook afgeleerd en gebruik ik ook al heel lang niet meer
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

09/08/2014 09:46:29
Quote Anchor link
Ivo heeft gelijk, je kan het zelfs instellen.
 

Pagina: 1 2 volgende »



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.