login  Naam:   Wachtwoord: 
Registreer je!
 Forum

MysqlI werkt niet (Opgelost)

Offline dimb - 05/06/2009 23:13
Avatar van dimbNieuw lid Hallo,

Ik ben een tutorial aan het volgen over het maken van een to-do list.
Hier gebruiken ze Mysqli om een connectie te leggen met de Mysql database.
Helaas wil dit maar niet lukken en blijf ik errors krijgen.
Ik gebruik de laatste Usbwebserver om scripts op te maken maar heb dit script ook getest op mijn dedicated server waar ik dezelfde errors kreeg.
Het betreft de volgende fout:

  1. Warning: mysqli::mysqli() [function.mysqli-mysqli]: (HY000/2003): Can't connect to MySQL server on '127.0.0.1' (10061) in L:\Scripting Envoirment\UsbWebserver\Root\todo_list\source\to-do-list2\db.php on line 10
  2.  
  3. Waardoor de volgende andere fouten optreden:
  4. Warning: mysqli::query() [function.mysqli-query]: Couldn't fetch mysqli in L:\Scripting Envoirment\UsbWebserver\Root\todo_list\source\to-do-list2\index.php on line 37
  5.  
  6. Notice: Trying to get property of non-object in L:\Scripting Envoirment\UsbWebserver\Root\todo_list\source\to-do-list2\index.php on line 39


Het eerste ik deed was kijken of mysqlI installed was, en dat is die.
Vervolgens heb ik gegoogled op (HY000/2003) en daar komt uit dat het iets vaags is en dat je niet localhost als host mag gebruiken (??). Daarom vanalles geprobeerd, http://localhost:8080/, 127.000.01 (zoiets) maar dit werkt ook allemaal niet. De database gegevens kloppen wel want met dezelfde gegevens en een standaard mysql connect lukt het wel in de loggen.
Als laatste de code:

  1. //db.php
  2. <?php
  3.  
  4. // my database class
  5.  
  6. class Db {
  7.  
  8.  
  9. var $mysql;
  10. function __construct() {
  11. $this -> mysql = new mysqli('http://localhost:8080/', 'root', 'usbw', 'chat') or die( mysqli_connect_error());
  12. }
  13.  
  14. function delete_by_id($id) {
  15. $query = "DELETE from todo WHERE id = $id";
  16. $result = $this->mysql->query($query) or die("There was a problem");
  17.  
  18. if($result) return 'yay!';
  19. }
  20.  
  21. function update_by_id($id, $description) {
  22. $query = "UPDATE todo
  23. SET description = ?
  24. WHERE id = ?
  25. LIMIT 1";
  26.  
  27. if($stmt = $this->mysql->prepare($query)) {
  28. $stmt->bind_param('si', $description, $id);
  29. $stmt->execute();
  30. return "good job!";
  31. }
  32. }
  33.  
  34. } // end class
  35. ?>


Dimby

8 antwoorden

Gesponsorde links
Offline Stijn - 05/06/2009 23:15
Avatar van Stijn PHP expert Can't connect -> lijkt me héél duidelijk de foutmelding.
Offline dimb - 05/06/2009 23:20
Avatar van dimb Nieuw lid Ja maar waarom? De logingegevens kloppen ....
Offline Koen - 05/06/2009 23:22 (laatste wijziging 05/06/2009 23:23)
Avatar van Koen PHP expert localhost gewoon gebruiken als host  (tenzij je mysql wel draait op port 8080...)

  1. $this -> mysql = new mysqli('localhost', 'root', 'usbw', 'chat') or die( mysqli_connect_error());
Offline dimb - 05/06/2009 23:28 (laatste wijziging 05/06/2009 23:29)
Avatar van dimb Nieuw lid Nope werkt niet ... had ik al geprobeerd

Warning: mysqli::mysqli() [function.mysqli-mysqli]: (HY000/2003): Can't connect to MySQL server on 'localhost' (10061) in L:\Scripting Envoirment\UsbWebserver\Root\todo_list\source\to-do-list2\db.php on line 10
Offline Raze - 05/06/2009 23:31 (laatste wijziging 05/06/2009 23:31)
Avatar van Raze PHP beginner ik gebruik ook mysqli en ik doe het zo

  1. $mysql = @mysqli_connect('localhost','user','pass','database') or trigger_error (mysqli_error());
  2. $this->mysql = $mysql;
Offline Koen - 05/06/2009 23:32
Avatar van Koen PHP expert Is de mysqli extensie wel ingeladen?
Offline dimb - 05/06/2009 23:33 (laatste wijziging 06/06/2009 10:09)
Avatar van dimb Nieuw lid Ja:
extension=php_mysql.dll
extension=php_mysqli.dll

Extra info uit de file:
[MySQLi]

; Maximum number of links. -1 means no limit.
mysqli.max_links = -1

; Default port number for mysqli_connect(). If unset, mysqli_connect() will use
; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the
; compile-time value defined MYSQL_PORT (in that order). Win32 will only look
; at MYSQL_PORT.
mysqli.default_port = 3307

; Default socket name for local MySQL connects. If empty, uses the built-in
; MySQL defaults.
mysqli.default_socket =

; Default host for mysql_connect() (doesn't apply in safe mode).
mysqli.default_host =

; Default user for mysql_connect() (doesn't apply in safe mode).
mysqli.default_user =

; Default password for mysqli_connect() (doesn't apply in safe mode).
; Note that this is generally a *bad* idea to store passwords in this file.
; *Any* user with PHP access can run 'echo get_cfg_var("mysqli.default_pw")
; and reveal this password! And of course, any users with read access to this
; file will be able to reveal the password as well.
mysqli.default_pw =

; Allow or prevent reconnect
mysqli.reconnect = Off

---
EDIT;
Ik heb in een apart bestand het volgende bestand gemaakt en kreeg de volgende error:

Can't connect to MySQL server on 'localhost' (10061)

<?php
$mysql = @mysqli_connect('localhost','root','usbw','dgame') or die( mysqli_connect_error());
?>

OPGELSOT
Bedankt iedereen voor het meehelpen met mijn probleem, maar ik heb het opgelost!

In zowel php.ini php2.ini en de settings.ini van USBwebserver heb ik de mysqli poort veranderd naar 3306 (ik de settings.ini van usbw de mysql poort). En toen deed hij het ineens.

Bedankt!
Offline kheops - 12/06/2009 12:08 (laatste wijziging 12/06/2009 12:08)
Avatar van kheops Nieuw lid Heb je dus enkel voor mysqli alles veranderd naar poort 3306 en voor mysql alles op poort 3307 laten staan?
Ik zit met hetzelfde probleem, kan iemand verklaren waarom van poort veranderen dan wel zou werken???

kheops
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.209s