Geacht forum,

Ik zit met een vreemd probleem op mijn website rspp.nl, nl deze:

i.v.m. met de migratie (half februari 2016) heb ik al mijn paginascripts doorgelopen en deze gewijzigd in mysli procedureel. Deze werken naar behoren.

Op iedere pagina wordt puchfunctions.php geinclude.
Nu heb ik dit script ook gewijzigd naar mysqli en krijg steeds een foutmelding.

++++++++++++++++++++++++++
Notice: Undefined variable: con in /public/sites/www.rspp.nl/library/puchfunctions.php on line 342

Warning: mysqli_query() expects parameter 1 to be mysqli, null given in /public/sites/www.rspp.nl/library/puchfunctions.php on line 342
Error, query failed.
++++++++++++++++++++++++++

Inhoud statement:

$query="insert into Pagehits(SessionID,Datum,Tijd,pagina) values('".$sessie."','".$datum."','".$tijd."','".$pathinfo."')";
// This shows the actual query sent to MySQL, and the error. Useful for debugging.

// APRIL 2015 IVM MIGRATIE PHP 5.4 - @ GEPLAATST = ONDERDRUKT FOUTMELDING
if (@$weg ==0) {
$result=mysqli_query($con,$query) or die('Error, query failed. ' . mysqli_connect_error());
}
}

+++++++++++++++++++++++++++

Dus heb ik het oude script puchfunctions.php mysql weer teruggezet en alles werkt weer naar behoren.

Maar nu weet ik niet of dit na de migratie ook nog zo is, maar dan ik dat dan wel weer.

Ik ben al een week bezig met zoeken en knutselen, maar helaas tevergeefs.

Hopelijk weet iemand een oplossing voor mij?

Hartelijke groet, Margot Schuitemaker
Waar maak je je connectie naar MySQLi aan, en hoe ziet de eruit?
Let erop dat je niet je gegevens hier op het forum plaatst.
We hebben inderdaad wat meer info nodig, maar ik doe een gokje:
Ik vermoed dat je deze query in een function staat (aan je bestandsnaam te zien)?
Waarschijnlijk heb je buiten deze function je MySQLi connectie gestart en zal je deze connectie mee moeten geven als parameter aan de functie.
Hoi Ariën en Gerard,

Bedankt voor jullie snelle reactie.

Op alle pagina's staan drie include bestanden
* config.php (= verbinding dbhost,dbuser,dbnaam)
* puchfunctions.php (staat bv in: euro's maken, waarschuwingen windows alert, is je winkelwagen vol, verschillende arrsy's met categorien frame, motor en wiel, berekeningen prijzen, aantal items enz.
* opendb.php met con-gegevens.

In puchfunctions.php staan geen verbindingopties.

Misschien kunnen jullie hier wat mee?

Dag, Margot

Hoe ziet je config.php en opendb.php er uit?
opendb.php

<?php
include 'config.php';
$con = mysqli_connect($dbhost,$dbuser,$dbpass);
?>

<?php
// This is an example of config.php
$dbhost='ip';
$dbuser='inlog';
$dbpass='paswoord';
$dbname='naam';
?>

Sinds 2009 heb ik een goed werkende website.
Je mist de 4e parameter voor je database in mysqli_connect.
de 4e parameter is niet verplicht, maar je zult dan wel http://php.net/manual/en/mysqli.select-db.php moeten gebruiken.

[size=xsmall]Toevoeging op 02/02/2016 12:29:54:[/size]

maar aangezien de foutmelding zegt dat $con niet bekend is, zul je een scope probleem hebben.

Ofwel maak je $con aan in een functie
<?php
function foo()
{
$con = mysqli_connect();
}
?>
en is hij daarbuiten dus niet bekend.

ofwel wil je binnen een function $con gebruiken terwijl hij daar onbekend is.

<?php
$con = mysqli_connect();

function bar()
{
echo mysqli_error($con);
}
?>

of beide...

Ariën,

Met onderstaand statement begin ik ieder pagina:

$con = mysqli_connect($dbhost,$dbuser,$dbpass);
if (!$con)
{
die('Could not connect: ' . mysqli_connect_error());
}
mysqli_select_db($con,$dbname);

Je schrijft: Ofwel maak je $con aan in een functie?
Ik weet niet wat foo betekent, behalve dat het een functie is. Een groter bereik? Moet ik deze voorwaarde(n) in het bestand opendb.php zetten?

<?php
function foo()
{
$con = mysqli_connect();
}
?>

Je schrijft: ofwel wil je binnen een function $con gebruiken terwijl hij daar onbekend is? Ik begrijp ook niet wat de functie bar doet.
Waar zet ik onderstaande voorwaarde neer of beiden?

<?php
$con = mysqli_connect();

function bar()
{
echo mysqli_error($con);
}
?>
Begrijp ik het goed dat ik beide functies foo en bar in de header onder

include ..... enz.
en boven onderstaande voorwaarde

$con = mysqli_connect($dbhost,$dbuser,$dbpass);

if (!$con)
{
die('Could not connect: ' . mysqli_connect_error());
}
mysqli_select_db($con,$dbname);

moet zetten?

Reageren