MySQL server testen met PHP

Status
Niet open voor verdere reacties.

JanRa

Gebruiker
Lid geworden
7 aug 2008
Berichten
51
Hallo Allemaal,

Aan de hand van een boek, ben ik als beginner, begonnen met PHP in combinatie met MySQL 5.1. Ik ben nu zover dat PHP en mijn webserver samen draaien. Dat lukt. Maar nu wil ik mijn MySQL server testen of ik verbinding heb, en dat lukt niet. Als ik het bestand oproep in mijn webbrowser, krijg ik de volgende foutmelding:

Fatal error: Call to undefined function mysqli_connect() in C:\Program Files\Apache Group\Apache2\htdocs\mysql_up.php on line 13

Line 13 in het php bestand geeft het volgende weer:
$cxn = mysqli_connect($host,$user,$password);

Ik kom er even niet uit. Heeft iemand een tip om toch die verbinding te krijgen met MySQL?

Alvast bedankt.

Groeten,
Jan
 
Dit heb ik van php.net:

PHP:
<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Could not connect: ' . mysql_error());
}
echo 'Connected successfully';
mysql_close($link);
?>
 
Dit is wat ik in het PHP-bestand heb staan, wat volgens mij allemaal klopt.

PHP:
<?php
/* Program: mysql_up.php
 * Desc:    Connects to MySQL Server and 
 *          outputs settings.
 */
 echo "<html>
       <head><title>Test MySQL</title></head>
       <body>";
 $host="localhost";
 $user="";
 $password="";

 $cxn = mysqli_connect($host,$user,$password);
 $sql="SHOW STATUS";
 $result = mysqli_query($cxn,$sql);
 if($result == false)
 {
    echo "<h4>Error: ".mysqli_error($cxn)."</h4>";
 }
 else
 {
   /* Table that displays the results */
   echo "<table border='1'>
         <tr><th>Variable_name</th>
             <th>Value</th></tr>";
   for($i = 0; $i < mysqli_num_rows($result); $i++) 
   {
     echo "<tr>";
     $row_array = mysqli_fetch_row($result);
      for($j = 0;$j < mysqli_num_fields($result);$j++) 
      {
         echo "<td>".$row_array[$j]."</td>\n";
      }
   }
   echo "</table>";
 }
?>
</body></html>

Kan iemand aangeven wat de voorwaarden zijn om met PHP en MySQL te communiceren? Wat ik moet instellen e.d.?

Alvast bedankt.

Groeten,
Jan
 
je maakt gebruikt van mysqli, maar zo te zien ben je vergeten om de mysqli module aan te zetten in php. open php.ini en zoek naar
Code:
;extension=php_mysqli.dll
haal de ; weg
Code:
extension=php_mysqli.dll
en start jouw webserver opnieuw op.
 
Hallo,

Ja dat had ik gedaan. Ik heb het geactiveerd, dus dat moet het probleem niet zijn. Nog meer suggesties?

Groeten,
Jan
 
maak eens een nieuw php bestand met daarin
PHP:
<?php
phpinfo();
?>
en open dat in je browser. Zoek op die pagina (ctrl+f) naar mysqli om te zien of de mysqli module actief is (mysql is niet hetzelfde als mysqli).
 
Hij vindt niks... dus waarschijnlijk is het nog niet gekoppeld. Hoe kan ik die koppeling maken?
 
Heb je toen je php installeerde wel de mysqli extentie mee geinstalleerd? dit gaat volgens mij niet vanzelf.

En voor het laten werken van phpMyAdmin moest ik een extentie in de c:\windows map zetten. Misschien hier ook het probleem?
 
Ik heb het bestand php_mysqli.dll in de hoofdmap van PHP gekopieerd. Daarnaast heb ik het bestand libmysql.dll in de hoofdmap van php gezet. Vervolgens heb ik de PHP,ini file aangepast.

Ik had MySQL al geinstalleerd. Een wachtwoord opgegeven. Heb ik iets te weinig gedaan? Ben erg benieuwd naar de oplossing, het lukt me gewoon niet een verbinding met MySQL aan te gaan.

Ik hoor graag.

(by the way, hoe kan ik de accountgegevens bekijken van MySQL?)

Vr. Gr.,
Jan
 
ik heb bij de configuratie van MySQL alleen een wachtwoord opgegeven. Dit wachtwoord heb ik vervolgens nog niet ergens anders toegepast. De user wordt mij verteld, is "root". Ik heb zelf nog geen databases aangemaakt, omdat ik eerst wilde checken of alles werkt.

Moet ik dat wachtwoord nog gebruiken in mijn php file? Waar kan ik de accountgegevens vinden?

Als ik phpinfo oproep, vind ik daar dus geen mysql geactiveerd staan. Dat komt in php.info niet voor. Volgens mij moet dit wel, maar kan ik nergens vinden wat ik daarvoor moet doen..
 
Laatst bewerkt:
dit is trouwens het testbestandje, waarbij ik dus gewoon MySQL test.

PHP:
<?php
/* Program: mysql_up.php
 * Desc:    Connects to MySQL Server and 
 *          outputs settings.
 */
 echo "<html>
       <head><title>Test MySQL</title></head>
       <body>";
 $host="localhost";
 $user="";
 $password="";

 $cxn = mysqli_connect($host,$user,$password);
 $sql="SHOW STATUS";
 $result = mysqli_query($cxn,$sql);
 if($result == false)
 {
    echo "<h4>Error: ".mysqli_error($cxn)."</h4>";
 }
 else
 {
   /* Table that displays the results */
   echo "<table border='1'>
         <tr><th>Variable_name</th>
             <th>Value</th></tr>";
   for($i = 0; $i < mysqli_num_rows($result); $i++) 
   {
     echo "<tr>";
     $row_array = mysqli_fetch_row($result);
      for($j = 0;$j < mysqli_num_fields($result);$j++) 
      {
         echo "<td>".$row_array[$j]."</td>\n";
      }
   }
   echo "</table>";
 }
?>
</body></html>

Ik hoef voor username en wachtwoord niks in te vullen, aangezien het mijn localhost is. De localhost heeft alle rechten, dit klopt toch?
 
Volgens mij moet je dan nog een .dll-bestandje voor mysqli downloaden en in de juiste map zetten. Ik zou zo niet weten waar dat kan...
 
je moet wel wat invullen bij $user en $password.

PHP:
$user = "root";
$password = "je_mysql_password";
 
Ik heb voor de zekerheid via de MySQL server instance configuration wizard een nieuw wachtwoord aangemaakt. De user kan niet aangemaakt worden, dus ik ga er vanuit dat dit de "root" is.

Vervolgens heb ik in het php-bestand username en wachtwoord ingevuld. En hij werkt nog steeds niet... zeer lastig! Als ik phpinfo oproep, dan staat de MySQL module er ook niet in. Ik heb werkelijk geen idee?
 
Je kan ook gewoon je server deïnstalleren en een heel pakket downloaden, zoals XAMPP. Zeer makkelijk in gebruik vind ik zelf, en er zitten redelijk duidelijke instructies bij om een database aan te maken e.d.
Klllik!
 
Hallo,

Bedankt voor de reactie. Xampp wil ik als laatste optie houden, aangezien ik dan het boek niet meer kan gebruiken wat ik aangeschaft heb, en dat lijkt me juist zo handig.

Ik heb een vraag: als ik phpinfo() oproep, staat de Mysqli module er niet in. Nu heb ik ergens gelezen dat je deze kan activeren in de php.ini file. Als dit laatste klopt, waar kan ik de module op "on" zetten. Moet ik dan ook paswoord en usernaam en host invoeren?

De phpinfo() moet toch de module weergeven, en dat doet ie niet...

Groeten,
Jan
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan