Couldn't find mysqli probleem
Ik word helemaal gek.
Ik heb het volgende script wat maar een error blijft geven...
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
if($result = $mysqli->query($qry)):
if(!empty($_POST['voorn'])): $_SESSION['Form']['voorn'] = $_POST['voorn']; endif;
if(!empty($_POST['achtern'])): $_SESSION['Form']['achtern'] = $_POST['achtern']; endif;
$_SESSION['Form']['error'] = false;
$_SESSION['Form']['succes'] = true;
else:
$_SESSION['Form']['error'] = true;
$_SESSION['Form']['msg'] = 'Uw aanmelding kon niet worden voltooid.';
endif;
?>
if($result = $mysqli->query($qry)):
if(!empty($_POST['voorn'])): $_SESSION['Form']['voorn'] = $_POST['voorn']; endif;
if(!empty($_POST['achtern'])): $_SESSION['Form']['achtern'] = $_POST['achtern']; endif;
$_SESSION['Form']['error'] = false;
$_SESSION['Form']['succes'] = true;
else:
$_SESSION['Form']['error'] = true;
$_SESSION['Form']['msg'] = 'Uw aanmelding kon niet worden voltooid.';
endif;
?>
Ik krijg de error:
Warning: mysqli::query() [mysqli.query]: Couldn't fetch mysqli in /home/paintmarkt/domains/paintballmarkt.nl/public_html/beta1.1/php/registreren.php on line 483
Heeft iemand enig idee wat ik moet doen en wat ik fout doe??
Waarop if($result = $mysqli->query($qry)): dus line : 483 is...
Gewijzigd op 02/02/2013 19:23:56 door Joni Fleischer
Kunnen we vrij weinig over zeggen als we niet zien hoe je mysqli aan hebt gemaakt en hoe $qry eruit ziet ect.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
$qry = "INSERT INTO users VALUES(";
$qry .= "'',"; // ID toevoegen
$qry .= "'".$emailadres."',"; // E-mail
$qry .= "'".$wachtwoord."',"; // Wachtwoord
$qry .= "'".$voornaam."',"; // Voornaam
$qry .= "'".$achternaam."',"; // Achternaam
$qry .= "'".$postcode."',"; // Postcode
$qry .= "'".$huisnr."',"; // Huisnummer
$qry .= "'".$adres."',"; // Adres
$qry .= "'".$woonplaats."',"; // Woonplaats
$qry .= "'".$provincie."',"; // Provincie
$qry .= "'".$geboortedatum."',"; // Geboortedatum
$qry .= "'".$geslacht."',"; // Geslacht
$qry .= "'".$telefoonnummer."',"; // Telefoon nummer
$qry .= "'".$mobielnummer."',"; // Mobiel nummer
$qry .= "'".date("Y-m-d")."',"; // Inschrijf datum
$qry .= "'non-actief',"; // Status
$qry .= "'".$activatienummer."',"; // Activatie code
$qry .= "'".$_SERVER['REMOTE_ADDR']."'"; // IP adres
$qry .= ")";
?>
$qry = "INSERT INTO users VALUES(";
$qry .= "'',"; // ID toevoegen
$qry .= "'".$emailadres."',"; // E-mail
$qry .= "'".$wachtwoord."',"; // Wachtwoord
$qry .= "'".$voornaam."',"; // Voornaam
$qry .= "'".$achternaam."',"; // Achternaam
$qry .= "'".$postcode."',"; // Postcode
$qry .= "'".$huisnr."',"; // Huisnummer
$qry .= "'".$adres."',"; // Adres
$qry .= "'".$woonplaats."',"; // Woonplaats
$qry .= "'".$provincie."',"; // Provincie
$qry .= "'".$geboortedatum."',"; // Geboortedatum
$qry .= "'".$geslacht."',"; // Geslacht
$qry .= "'".$telefoonnummer."',"; // Telefoon nummer
$qry .= "'".$mobielnummer."',"; // Mobiel nummer
$qry .= "'".date("Y-m-d")."',"; // Inschrijf datum
$qry .= "'non-actief',"; // Status
$qry .= "'".$activatienummer."',"; // Activatie code
$qry .= "'".$_SERVER['REMOTE_ADDR']."'"; // IP adres
$qry .= ")";
?>
En de mysqli:
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
$mysqli = new mysqli(DATABASE_HST,USER_DB,PASS_DB,DATABASE_DB);
if(mysqli_connect_errno())
{
trigger_error('Fout bij verbinding: '.$mysqli->error);
}
?>
$mysqli = new mysqli(DATABASE_HST,USER_DB,PASS_DB,DATABASE_DB);
if(mysqli_connect_errno())
{
trigger_error('Fout bij verbinding: '.$mysqli->error);
}
?>
Je gaat van een mysqli object stijl (new MySQLi) naar een mysql procedurele stijl (mysqli_connect_errno) en weer naar een mysqli object stijl ($mysqli->query). Kies wat je wilt gebruiken: Of de procedurele of de object stijl.
Ben bekend met het oude programeren, maar mysqli is nieuw voor mij..
Toevoeging op 02/02/2013 20:26:11:
Probleem al gevonden..
Had DATABASE_HOST mijn username ingevuld ipv localhost :D
MySQLi kan op 2 manieren gebruikt worden, met allemaal functies:
Code (php)
Of in de object stijl:
Code (php)
Je moet 1 van die 2 kiezen, nu mix je die. Lees anders eens deze goede tutorial over MySQLi: http://phptuts.nl/view/26/
Doe je neem ik aan omdat het id veld een integer is met een auto_increment. Dan is dit in principe fout. Een string kan je namelijk niet in een integer veld proppen. Omdat mysql nogal makkelijk is zal het automatisch worden geconverteerd naar een nieuwe id waarde, maar je krijgt wel een warning "Incorrect integer value: '' for column 'id' at row 1".
Bij een auto_increment kan je de waarde gewoon weglaten, dan is er niets aan de hand. Wat je dan wel zal moeten doen (en wat altijd verstandig is) is het definieren van alle kolommen die je wilt invoeren. Nu geef je alleen een rits waardes, maar laat je het aan mysql om het in de juiste kolom in te voeren, dat is een recept voor fouten. Beter sql statement zou dus dit zijn: