query werkt wel in phpmyadmin en niet in php

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Tim Hoogland

Tim Hoogland

03/12/2019 22:06:57
Quote Anchor link
Curieus: als ik een eenvoudige sql query draait in phpmyadmin, dan runt de query succesvol:

SELECT *
FROM `kaartleggingen_2016a`
WHERE `IPadres` = '86.86.157.44'

Maar neem ik deze query op in een php-script, dan krijg ik een - overigens weinig zeggende - foutmelding:

Fout in query: SELECT * FROM 'kaartleggingen_2016a' WHERE `IPadres` = '86.86.157.44'

Wie heeft enig idee hoe ik dit probleem kan oplossen?
 
PHP hulp

PHP hulp

19/03/2024 04:03:24
 
Ivo P

Ivo P

03/12/2019 22:09:57
Quote Anchor link
en als je de foutmelding van mysql laat weergeven?
mysql_error() of een moderne variant daarvan?

zou zo maar kunnen dat hij dan klaagt over een error near ''kaart....

omdat je quotes om de tabelnaam hebt gezet
 
Rob Doemaarwat

Rob Doemaarwat

03/12/2019 22:17:56
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
SELECT * FROM 'kaartleggingen_2016a' WHERE `IPadres` = '86.86.157.44'

- De quotes om kaartleggingen_2016a moeten of weg, of door "backticks" (meestal boven de {tab} toets) worden vervangen.
- Is de quote achter het IP-adres wel een echte (single) quote (zie er een beetje apart uit - misschien gekopieerd vanuit Word oid)?
Gewijzigd op 03/12/2019 22:18:27 door Rob Doemaarwat
 
Frank Nietbelangrijk

Frank Nietbelangrijk

03/12/2019 23:34:43
Quote Anchor link
Die backticks zijn ook zo een typisch mysql/phpmyadmin ding.. laat die toch lekker achterwege.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
SELECT * FROM kaartleggingen_2016a WHERE IPadres = '86.86.157.44'
 
Tim Hoogland

Tim Hoogland

04/12/2019 08:03:11
Quote Anchor link
Ook als ik alle quotes weghaal, krijg ik dezelfde foutmelding.

Toevoeging op 04/12/2019 08:22:14:

En als ik er een foutmelding bij doe, wordt het:
Error description: Fout in query: SELECT * FROM kaartleggingen_2016a WHERE IPadres = '86.86.157.44'
 
Ivo P

Ivo P

04/12/2019 08:59:29
Quote Anchor link
nogmaals: mysql kan exact vertellen wat er mis is.

Als je kiest voor een weinig zeggende foutmelding als "er gaat iets mis", dan kun je daar weinig mee. De syntax lijkt goed, maar het kan zo maar zijn, dat er fouten in de hoofdletters van de tabelnaam zitten, de tabel niet bestaat of de kolom niet bestaat.

Kan ook zijn dat de user geen rechten heeft op die tabel, of dat je sowieso al met een verkeerde (of geen) database verbonden bent.

Kortom: gebruik (bij het ontwikkelen) de foutmelding die de database je geeft.
 
Tim Hoogland

Tim Hoogland

04/12/2019 21:48:21
Quote Anchor link
Beste eH,

Bedoel je zoiets als: echo("Error description: " . mysqli_error($sql));
of iets anders?
 
Ivo P

Ivo P

04/12/2019 22:18:35
Quote Anchor link
Ja, dat bedoel ik.

Waarbij $sql dan je connection is he. Niet de query.

dus iets als
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php

$query
="SELECT * FROM kaartleggingen_2016a WHERE IPadres = '86.86.157.44' ";

if(!$res = mysqli_query($sql, $query)) {
  echo 'query fout: '. mysqli_error($sql);
}

?>


evnetueel aangevuld met de query zelf. Maar dat alles alleen als je nog niet in productie bent met je site.
 
Tim Hoogland

Tim Hoogland

04/12/2019 22:36:57
Quote Anchor link
Dat levert bij mij alleen de tekst op: "query fout: ". De mysqli_error($sql) wordt dus niet getoond.
 
- Ariën  -
Beheerder

- Ariën -

04/12/2019 22:38:00
Quote Anchor link
Omdat je geen $sql moet gebruiken, maar de variabele van je connectie.
Het is een beetje een onhandige gekozen variabele, maar Ivo zegt het goed.
Gewijzigd op 04/12/2019 22:38:39 door - Ariën -
 
Tim Hoogland

Tim Hoogland

04/12/2019 22:45:19
Quote Anchor link
Ja, dat zag ik ook. Bij is dat $conn. Nu ik dat veranderd heb krijg ik niets meer te zien van het resultaat.

Toevoeging op 04/12/2019 22:47:27:

Voor de volledigheid de volledige code (zonder de inloggegevens):
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<?php
$conn
= mysqli_connect($dbhost1, $dbuser1, $dbpass1, $dbname1);
mysqli_set_charset($conn, "utf8");

// Check connection
if (mysqli_connect_errno())
  {

    echo "Verbinding met MySQL mislukt: " . mysqli_connect_error();
  }
else {
    // alles is gelukt, voer hier de rest uit.
  echo "Verbinding OK";
        echo "<br>";
        
        //Ip-adres
        $ipAdres = $_SERVER["REMOTE_ADDR"];


        //today
        $date = date("Y-m-d");
        echo $date;
        echo "<br>";
        $tijd = date("H:i:s");
        echo $tijd;
        echo "<br>";
        $uur = date("H");
        $minuut = date("i");
        echo $uur;
        echo "<br>";
        echo $minuut;
        echo "<br>";
    
echo "<br>";

    $query = "SELECT * FROM kaartleggingen_2016a WHERE IPadres = '86.86.157.44'";
        
    if(!$res = mysqli_query($conn, $query)) {
    echo 'query fout: '. mysqli_error($conn);
    }

}

?>

Edit:
Ik heb code-tags geplaatst. Gelieve dit in het vervolg zelf toe te voegen aan je bericht.
Zie ook: Veel gestelde vragen: Welke UBB-codes kan ik gebruiken.
Gewijzigd op 04/12/2019 22:52:02 door - Ariën -
 
- Ariën  -
Beheerder

- Ariën -

04/12/2019 22:53:58
Quote Anchor link
Logisch, want ik zie nergens iets met een mysqli_fetch_assoc(), waarmee je de data ophaalt.
 
Tim Hoogland

Tim Hoogland

04/12/2019 23:10:04
Quote Anchor link
Ariën, bedankt voor de tip. Zoals je al door had, heb ik niet veel ervaring met programmeren in PHP. Maar nu werkt de query. Nogmaals bedankt en ook Ivo.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.