overgestap van wamp 2,5 naar 3,06 heb errors
mysqli.default_socket en pdo_mysql.default_socket misschien niet leeg zijn.
Deze moet je namelijk dan invullen.
Als je mysql een verbinding met localhost laat opzetten dan gebruikt hij dus een socket.
"When using localhost as the destination in a client connector interface of an application, the MySQL application programming interface connects to the database using a Unix domain socket, while a TCP connection via the loopback address requires the direct use of the explicit address."
Klinkt leuk, maar is in het geval van WAMP of XAMPP niet relevant. Windows kent geen unix style sockets.
maar omdat ik nu veel in het script hem moeten aanpassen naar mysqli_connect en zo heb ik nog niet kunnen vinden hoe ik naar de database terug kan schrijven nu heb ik nog
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
include('counter/db.php');
$site = "een website";
$keuze = "site";
$link = mysqli_connect($host, $dbnaam, $dbww, $db_name);
if (!$link) {
die('Could not connect: ' . mysql_error());
}
$sql= mysqli_query($link,"SELECT ".$keuze.", COUNT(".$keuze.") FROM counter WHERE site='".$site."' GROUP BY ".$keuze."" ) ;
while ( $rij = mysqli_fetch_array( $sql ) ) {
echo "Bezoeker </br>".$rij['COUNT('.$keuze.')'];
}
$site = "een website";
$keuze = "site";
$link = mysqli_connect($host, $dbnaam, $dbww, $db_name);
if (!$link) {
die('Could not connect: ' . mysql_error());
}
$sql= mysqli_query($link,"SELECT ".$keuze.", COUNT(".$keuze.") FROM counter WHERE site='".$site."' GROUP BY ".$keuze."" ) ;
while ( $rij = mysqli_fetch_array( $sql ) ) {
echo "Bezoeker </br>".$rij['COUNT('.$keuze.')'];
}
UPDATE ... SET
Om maar wat basis-mogelijkheden van SQL op te noemen.
Voorheen stond er overal in je scripts:
Nu appelVla() is komen te vervallen vervang je alle voorkomens door:
Maar wat als dit nu opnieuw verandert?
Wat nu als je perenVla($b, $a) vervangt door mijnVla($a, $b) en je deze functie als volgt definieert:
En vervolgens dus overal mijnVla($a, $b) gebruikt, en blijft gebruiken.
Dan, wanneer er iets in toetjesland verandert, hoef je (in een ideale situatie) slechts één regel code aan te passen in plaats van (opnieuw) alle voorkomens van je vla-functies te veranderen / te zoeken en te vervangen.
Concreet: het is onverstandig om functies die op een database opereren op deze manier te hardcorden (rechtstreeks mysqli-functies en -methoden gebruiken). Het alternatief wat ik voorstel dekt natuurlijk niet alles maar als je een implementatie van een bepaalde functionaliteit wilt wijzigen dan hoef je dat op de bovenstaande wijze maar op één plaats te doen omdat je indirect -via meer van dit soort functies- met je database communiceert.
Ook kun je deze over tijd inhoudelijk wijzigen met behoud van de werking, maar ook uitbreiden naar aanleiding van ontwikkelingen in PHP-land en eigen voortschrijdend inzicht.
Je zou zelfs kunnen overwegen om bepaalde operaties te bundelen, maar daarmee moet je wel een beetje voorzichtig zijn uiteraard.
Wat je uit dit bovenstaande geratel moet meenemen is het volgende: iets wat je hard in code hebt vastgelegd is veranderd. Dit kost je nu veel werk om aan te passen. Bega niet opnieuw dezelfde fout maar wees slim(mer) in je aanpak.
Gewijzigd op 16/10/2017 14:48:46 door Thomas van den Heuvel
op gelost bedankt
Wellicht wil je de oplossing ook delen? Of kwam het neer op simpelweg alle voorkomens van mysql_ veranderen naar een gelijkwaardige mysqli_-variant?