Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien
Toon posts:

[php] Probeel in query

Pagina: 1
Acties:
  • 603 views

Verwijderd

Topicstarter
Goedemorgen,

Ik ben namelijk bezig met een beheer systeem (om mijn psot-its te vervangen)

Maar ik stuit namelijk op error's in mij query's. En ik krijg namelijk de bug en error's niet uit mijn query
Want ik probeer namelijk via php een record uit mijn SQL database te verwijderen. Maar telkens ik de functie probeer uit te voeren krijg ik namelijk deze error.

de aanroeping van de query = <a class='label label-default' href='includes/del.php?ID=id'>Delete</a>

No database selected.

Maar ik include namelijk mijn connect.php file in die query.

[CODE]

<?php

// Opent de connectie
$con=mysqli_connect("localhost","root","PASSWORD","info");
// Check connection
if (mysqli_connect_errno())
{
echo "Kan geen verbinding maken met MySQL: " . mysqli_connect_error();
}
?>

[CODE]

<?php
include("connect.php");

$id =$_REQUEST['ID'];


// sending query
mysql_query("DELETE FROM logins WHERE ID = '$id'")
or die(mysql_error());

header("Location: logins.php");

?>

Iemand die eventueel mij kan helpen met het killen van deze bug. (ben nieuw in php)

[ Voor 4% gewijzigd door Verwijderd op 12-11-2013 10:24 ]


  • Morrar
  • Registratie: Juni 2002
  • Laatst online: 21-11 21:44
Je moet ook aan de connectie opgeven met welke database MySQL moet werken....

http://php.net/manual/en/mysqli.select-db.php

In 1 minuutje Googlen...

[ Voor 33% gewijzigd door Morrar op 12-11-2013 10:25 ]


Verwijderd

Topicstarter
maar die staat toch in de connect.php

Verwijderd

je maakt met mysqli connectie en gebruikt mysql om de query uit te voeren

  • Morrar
  • Registratie: Juni 2002
  • Laatst online: 21-11 21:44
Nee in connect.php maak je alleen verbinding met een *server*, maar je kiest nog geen database die op die server staat.

Edit: Ah nvm, wat hierboven gezegd wordt dus.

[ Voor 39% gewijzigd door Morrar op 12-11-2013 10:28 ]


Verwijderd

Morrar schreef op dinsdag 12 november 2013 @ 10:26:
Nee in connect.php maak je alleen verbinding met een *server*, maar je kiest nog geen database die op die server staat.
doet hij wel, parameters zijn host, username, password, dbname

Verwijderd

Topicstarter
hmm dus ik moet de query ombouwen tot een mysqli query?

Verwijderd

mysqli_query(jemysqlilink, query);

  • Voyage
  • Registratie: December 2002
  • Laatst online: 06:59
Je roept mysql_query aan en je maakt verbinding met mysqli. Dus je moet ook de juiste functies aanropen, mysqli_query als ik me niet vergis.

Verwijderd

Topicstarter
Ik ga het proberen alvast bedankt en mijn excuses alvast voor deze misschien "domme" vraag

  • thaan
  • Registratie: Oktober 2004
  • Laatst online: 14:54
Verwijderd schreef op dinsdag 12 november 2013 @ 10:27:
hmm dus ik moet de query ombouwen tot een mysqli query?
Precies. Waar je bij mysql 1 verbinding opbouwt en die vervolgens niet constant hoeft te noemen, moet je bij mysqli wel elke keer aangeven welke verbinding je wilt gebruiken.


code:
1
mysqli_query($con, "DELETE FROM logins WHERE ID = '$id'")

Bedenk dat je ook bij de mysqli_error moet aangeven dat je $con gebruikt.

Aangezien je nieuw bent met php, leer jezelf aan om nooit onbetrouwbare input in een query te gooien, zoals je hier doet:
code:
1
$id =$_REQUEST['ID'];


Je kan dit veilig maken door je $_REQUEST (of $_GET in dit geval) door de volgende functie te halen:
code:
1
$id = mysqli_real_escape_string($con, $_REQUEST['ID']);

Nu kun je $id veilig in je query gebruiken.

[ Voor 28% gewijzigd door thaan op 12-11-2013 10:32 ]


  • Voyage
  • Registratie: December 2002
  • Laatst online: 06:59
Verwijderd schreef op dinsdag 12 november 2013 @ 10:29:
Ik ga het proberen alvast bedankt en mijn excuses alvast voor deze misschien "domme" vraag
Het is geen domme vraag en je hoeft je excuses niet aan te bieden. Iedereen maakt fouten, je moet er alleen van leren en de volgende keer zelf wat meer onderzoeken :). Succes!

Verwijderd

Topicstarter
die $con is mijn 2de parameter als ik mij niet vergis?

  • Afvalzak
  • Registratie: Oktober 2008
  • Laatst online: 31-08 12:02

Afvalzak

Zet jij mij even buiten?

Het direct gebruiken van een REQUEST variabele in een query is wel eng..

http://stackoverflow.com/...qli-prevent-sql-injection

Last.fm | Code Talks


Verwijderd

Topicstarter
thaan schreef op dinsdag 12 november 2013 @ 10:29:
[...]

Precies. Waar je bij mysql 1 verbinding opbouwt en die vervolgens niet constant hoeft te noemen, moet je bij mysqli wel elke keer aangeven welke verbinding je wilt gebruiken.


code:
1
mysqli_query($con, "DELETE FROM logins WHERE ID = '$id'")

Bedenk dat je ook bij de mysqli_error moet aangeven dat je $con gebruikt.

Aangezien je nieuw bent met php, leer jezelf aan om nooit onbetrouwbare input in een query te gooien, zoals je hier doet:
code:
1
$id =$_REQUEST['ID'];


Je kan dit veilig maken door je $_REQUEST (of $_GET in dit geval) door de volgende functie te halen:
code:
1
$id = mysqli_real_escape_string($con, $_REQUEST['ID']);

Nu kun je $id veilig in je query gebruiken.
Ik heb namelijk je query eens toegevoegd maar ik krijg echter geen error. maar er word ook niets verwijderd :s

  • thaan
  • Registratie: Oktober 2004
  • Laatst online: 14:54
Verwijderd schreef op dinsdag 12 november 2013 @ 10:31:
die $con is mijn 2de parameter als ik mij niet vergis?
Nee, je eerste. In mysqli_query geef je als eerste parameter welke link je gebruik ($con in jouw geval) en vervolgens als 2e parameter de query.
Verwijderd schreef op dinsdag 12 november 2013 @ 10:33:
[...]


Ik heb namelijk je query eens toegevoegd maar ik krijg echter geen error. maar er word ook niets verwijderd :s
Je gebruikt wel mysqli_error($con) ?

[ Voor 27% gewijzigd door thaan op 12-11-2013 10:34 ]


Verwijderd

Topicstarter
thaan schreef op dinsdag 12 november 2013 @ 10:33:
[...]

Nee, je eerste. In mysqli_query geef je als eerste parameter welke link je gebruik ($con in jouw geval) en vervolgens als 2e parameter de query.


[...]

Je gebruikt wel mysqli_error($con) ?
<?php
include("connect.php");

$id =$_REQUEST['ID'];


// sending query
mysqli_query($con, "DELETE FROM logins WHERE ID = '$id'")
or die(mysqli_error($con));

header("Location: ../log-ins.php");

?>

  • Morrar
  • Registratie: Juni 2002
  • Laatst online: 21-11 21:44
mysql_error i.p.v. mysqli_error in je code.

Persoonlijk zou ik liever object georienteerd aan de slag gaan, dan zit je niet steeds met de verbinding en de namen te klooien.

Bijvoorbeeld:

code:
1
2
3
4
5
6
7
8
9
10
11
$con = new mysqli('localhost', 'user', 'password', 'info');

if($con->connect_errno)
    die('Geen verbinding: ' . $con->connect_error);

$id = $con->real_escape_string($_REQUEST['ID']);

if(!$con->query('DELETE FROM logins WHERE ID = ' . $id))
    die('Kon de gebruiker niet verwijderen: ' . $con->error);

$con->close();

[ Voor 116% gewijzigd door Morrar op 12-11-2013 10:49 ]


  • Fish
  • Registratie: Juli 2002
  • Niet online

Fish

How much is the fish

ennueh niet vergeten te closen he, anders zit in in no time door je connecties

mysqli_close($mysqli);

[ Voor 27% gewijzigd door Fish op 12-11-2013 10:41 ]

Iperf


Verwijderd

Topicstarter
heb echter geclosed en mysql in mysqli veranderd maar nog steeds nog niets

  • Afvalzak
  • Registratie: Oktober 2008
  • Laatst online: 31-08 12:02

Afvalzak

Zet jij mij even buiten?

Gooi eens een echo voor: mysqli_query($con, "DELETE FROM logins WHERE ID = '$id'")

Last.fm | Code Talks


Verwijderd

Topicstarter
Afvalzak schreef op dinsdag 12 november 2013 @ 10:46:
Gooi eens een echo voor: mysqli_query($con, "DELETE FROM logins WHERE ID = '$id'")
Hoe bedoel je?

Verwijderd

Topicstarter
Afvalzak schreef op dinsdag 12 november 2013 @ 10:46:
Gooi eens een echo voor: mysqli_query($con, "DELETE FROM logins WHERE ID = '$id'")
Hoe bedoel je?

Verwijderd

Topicstarter
kan het ook niet te maken hebben met de samenstelling van de sql table?

  • Morrar
  • Registratie: Juni 2002
  • Laatst online: 21-11 21:44
Verwijderd schreef op dinsdag 12 november 2013 @ 10:49:
kan het ook niet te maken hebben met de samenstelling van de sql table?
Dat kan, en het kan ook dat $_REQUEST['ID"] niet binnenkomt. Daarom zou ik de query ook even echo-en:

echo "DELETE FROM logins WHERE ID = '$id'";

Als je de query hebt, kun je hem ook testen in phpMyAdmin en zien wat er mis gaat.

[ Voor 17% gewijzigd door Morrar op 12-11-2013 10:56 ]


Verwijderd

Topicstarter
dus gewoon echo mysqli_query($con, "DELETE FROM logins WHERE ID = '$id'") ?

Srry hoog noob gehalte!

Verwijderd

Topicstarter
Morrar schreef op dinsdag 12 november 2013 @ 10:55:
[...]


Dat kan, en het kan ook dat $_REQUEST['ID"] niet binnenkomt. Daarom zou ik de query ook even echo-en:

echo "DELETE FROM logins WHERE ID = '$id'";

Als je de query hebt, kun je hem ook testen in phpMyAdmin en zien wat er mis gaat.
Parse error: syntax error, unexpected 'echo' (T_ECHO) in C:\xampp-server\htdocs\man\includes\del.php on line 8

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 15:09

Creepy

Tactical Espionage Splatterer

Hoog noob gehalte is niet erg. Maar het forum als platte helpdesk gebruiken wel. Er zijn een heleboel tutorials te vinden hoe een query uit te voeren in PHP, mnaar het lijkt erop alsof je er nog geen 1 goed hebt bekeken. Het forum is niet bedoeld als domme helpdesk, maar zo gebruik je het nu wel.

Begin gewoon even opnieuw. Zoek een mysqli tutorial voor PHP en ga je gang.

Parse errors melden is leuk, maar daarvan verwachten we zeker dat je zie zelf kan oplossen. Je foutmelding hier dumpen en wachten op een oplossing is absoluut NIET de bedoeling hier. Dat staat overigens netjes uitgeled in Het algemeen beleid #topicplaatsen waar je tijdens registratie mee akkoord bent gegaan. Lees dat nog eens rustig door.

[ Voor 14% gewijzigd door Creepy op 12-11-2013 11:01 ]

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney

Pagina: 1

Dit topic is gesloten.