Ik heb in phpMyAdmin een database aangemaakt met de naam global, daarin twee tabellen aangemaakt waaronder een met de naam countrymet daarin een kolom met de naam continent en een met de naam countrynamemet namen van continenten en namen van landen.
De tweede tabel heeft de naam city met daarin een kolom met de naam countryID en cityname, deze gevuld met nummers en plaatsnamen.

Als ik deze met SELECT wil oproepen in php (zie hieronder)krijg ik steeds dezelfde foutmelding nl. De sql-query is niet uitgevoerd, het script wordt afgebroken.

Volgens mij moet ik alles toch goed gedaan hebben. Of zit ik weer helemaal fout?

<html>
<head><title>PHP met MySQL</title></head>
<body>
<?php
$host="localhost";
$gebruiker="root";
$wachtwoord="";
error_reporting(0);
$verbinding=mysql_connect($host,$gebruiker,$wachtwoord);
if (!$verbinding) die ("<br>Kan geen verbinding maken met de database,
het script wordt afgebroken");

$dbnaam="global";
$sql="SELECT * city";
$result = mysql_db_query($dbnaam,$sql,$verbinding)
or die ("De sql-query is niet uitgevoerd, het script wordt afgebroken");
mysql_close($verbinding);
?>
</body></html>
Henk: je hebt een database-server, een database en een tabel.
Of je hebt van (enkele) bovengenoemde drie meer dan één.

Daarom dien je altijd met de juiste server te verbinden en in je queries aan te geven om welke database + tabel het gaat.


select * from my_database.my_table


omdat er echter vaak binnen één database gewerkt wordt kun je met mysql_select_db() aangeven welke database standaard geselecteerd is. Geef je dan dus geen database naam op pakt ie de als standaard ingestelde.

Na het selecteren van de database kun je dan de query inkorten tot:


select * from my_table

Maar pas in PHP 5.3 heeft het de 'deprecated'-label meegekregen.....


This function has been DEPRECATED as of PHP 5.3.0.
iets lager:

4.0.6 This function is deprecated, do not use this function. Use mysql_select_db() and mysql_query() instead.


maar pas sinds 5.3:

5.3.0 This function now throws an E_DEPRECATED notice.


Maar dat komt omdat de error_level E_DEPRECATED pas in 5.3 geïntroduceerd is.
http://php.net/manual/en/migration53.deprecated.php

Reageren