Query komt niet aan in database
Code (php)
1
2
3
2
3
$query = "INSERT INTO shorter ( long, short ) VALUES ( '".mysql_real_escape_string($long)."', '".mysql_real_escape_string($short)."' )";
mysql_query($query);
mysql_query($query);
Deze query komt niet aan in mijn database... wat is er aan de hand?
maak van:
eens:
eens:
Echo de query eens naar het scherm; klopt het dan met wat je verwacht?
Hoewel niemand het waardeert, maar het nu wel een oplossing kan bieden, plaats
or die(mysql_error()) na het ) op regel 3 --> je krijgt dan hopelijk/mogelijk een foutmelding.
Edit: met die laatste opmerking was Tom Tom me net voor.
Hoewel niemand het waardeert, maar het nu wel een oplossing kan bieden, plaats
or die(mysql_error()) na het ) op regel 3 --> je krijgt dan hopelijk/mogelijk een foutmelding.
Edit: met die laatste opmerking was Tom Tom me net voor.
Gewijzigd op 23/08/2010 21:29:33 door Obelix Idefix
Zijn jullie gek? Ga die gozer niet aanleren dingen te doden...
gebruik gewoon:
gebruik gewoon:
Code (php)
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
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
<?php
$qry = "INSERT INTO
shorter
(
long,
short
)
VALUES
(
'".mysql_real_escape_string($long)."',
'".mysql_real_escape_string($short)."'
)";
if($sql = mysql_query($qry))
{
if(mysql_num_rows($sql) > 0)
{
// Goed
}
else
{
echo 'Geen items gevonden.';
}
}
else
{
echo 'Er is een fout in de query.<br />';
echo mysql_error();
}
?>
$qry = "INSERT INTO
shorter
(
long,
short
)
VALUES
(
'".mysql_real_escape_string($long)."',
'".mysql_real_escape_string($short)."'
)";
if($sql = mysql_query($qry))
{
if(mysql_num_rows($sql) > 0)
{
// Goed
}
else
{
echo 'Geen items gevonden.';
}
}
else
{
echo 'Er is een fout in de query.<br />';
echo mysql_error();
}
?>
Gewijzigd op 23/08/2010 21:40:21 door Milo S
okay, nu gebruik ik dit:
Maar nu krijg ik dit:
Er is een fout in de query.
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'long, short ) VALUES ( ' at line 4
Code (php)
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
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
$qry = "INSERT INTO
shorter
(
long,
short
)
VALUES
(
'".mysql_real_escape_string($long)."',
'".mysql_real_escape_string($short)."'
)";
if($sql = mysql_query($qry))
{
if(mysql_num_rows($sql) > 0)
{
echo 'Created! url: <br/>';
echo $fullurl;
echo 's.php?u=';
echo $short;
}
else
{
echo 'Error.';
}
}
else
{
echo 'Er is een fout in de query.<br />';
echo mysql_error();
}
}
}
shorter
(
long,
short
)
VALUES
(
'".mysql_real_escape_string($long)."',
'".mysql_real_escape_string($short)."'
)";
if($sql = mysql_query($qry))
{
if(mysql_num_rows($sql) > 0)
{
echo 'Created! url: <br/>';
echo $fullurl;
echo 's.php?u=';
echo $short;
}
else
{
echo 'Error.';
}
}
else
{
echo 'Er is een fout in de query.<br />';
echo mysql_error();
}
}
}
Maar nu krijg ik dit:
Er is een fout in de query.
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'long, short ) VALUES ( ' at line 4
@Milo,
Is het voor INSERT INTO en UPDATE niet mysql_affected_rows, en alleen voor SELECTS mysql_num_rows?
Correct me if i'm wrong
Is het voor INSERT INTO en UPDATE niet mysql_affected_rows, en alleen voor SELECTS mysql_num_rows?
Correct me if i'm wrong
Long is een gereserveerd woord volgensmij.
Kay, nou heb ik het verandert:
$qry = "INSERT INTO shorter ('langeurl', 'korteurl') VALUES ('".mysql_real_escape_string($long)."', '".mysql_real_escape_string($short)."' )";
Maar hij doet het nog steeds niet. ?
$qry = "INSERT INTO shorter ('langeurl', 'korteurl') VALUES ('".mysql_real_escape_string($long)."', '".mysql_real_escape_string($short)."' )";
Maar hij doet het nog steeds niet. ?
Haal de quotes om langeurl en korteurl weg, het zijn kolomnamen geen strings!
@Nico: daar heb je helemaal gelijk in :-)
@Nico: daar heb je helemaal gelijk in :-)
Het werkt.
Maar nu heb ik een ander probleem, als ik het uit de database haal:
Nu blijft de pagina leeg?
Maar nu heb ik een ander probleem, als ik het uit de database haal:
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
$query = "SELECT * FROM shorter WHERE korteurl = '".$u."'";
if($sql = mysql_query($query))
{
while($row = mysql_fetch_assoc($res))
{
header("Location: ".$row['longurl']);
}
}
else
{
echo 'Er is een fout in de query.<br />';
echo mysql_error();
}
if($sql = mysql_query($query))
{
while($row = mysql_fetch_assoc($res))
{
header("Location: ".$row['longurl']);
}
}
else
{
echo 'Er is een fout in de query.<br />';
echo mysql_error();
}
Nu blijft de pagina leeg?
Gewijzigd op 24/08/2010 14:10:02 door Dalando De Zuil
Wat nu als die query geen resultaten oplevert? Dan gebeurt er niets (de while-lus wordt dan niet doorlopen)
Waarom die while-lus als je maar één resultaat wilt ophalen?
Gewoon
Waarom die while-lus als je maar één resultaat wilt ophalen?
Gewoon
Jelmer rrrr op 24/08/2010 14:13:31:
Wat nu als die query geen resultaten oplevert? Dan gebeurt er niets (de while-lus wordt dan niet doorlopen)
Waarom die while-lus als je maar één resultaat wilt ophalen?
Gewoon
Waarom die while-lus als je maar één resultaat wilt ophalen?
Gewoon
Hmm, nu krijg ik de URL NIET GEVONDEN error. Ik zal even wat meer code posten:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
if(isset($_GET['u'])){
$query = "SELECT * FROM shorter WHERE korteurl = '".$_GET['u']."'";
if($sql = mysql_query($query))
{
$row = mysql_fetch_assoc($res);
if($row)
{
header('Location: ' . $row['longurl']);
exit;
}
else
{
echo 'URL niet gevonden';
}
}
else
{
echo 'Er is een fout in de query.<br />';
echo mysql_error();
}
$query = "SELECT * FROM shorter WHERE korteurl = '".$_GET['u']."'";
if($sql = mysql_query($query))
{
$row = mysql_fetch_assoc($res);
if($row)
{
header('Location: ' . $row['longurl']);
exit;
}
else
{
echo 'URL niet gevonden';
}
}
else
{
echo 'Er is een fout in de query.<br />';
echo mysql_error();
}
Als dit stukkie code klaar is werkt mijn script! Ga ik m hier posten na wat verbeteringen.. ;)
Netter vind ik dan:
edit: Zorg wel dat je variabelen kloppen. Jelmer en ik gebruiken $res waar jij $sql gebruikt!
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
if(mysql_num_rows($res) > 0) {
$row = mysql_fetch_assoc($res);
header(...);
}
else {
// url niet gevonden
}
?>
if(mysql_num_rows($res) > 0) {
$row = mysql_fetch_assoc($res);
header(...);
}
else {
// url niet gevonden
}
?>
edit: Zorg wel dat je variabelen kloppen. Jelmer en ik gebruiken $res waar jij $sql gebruikt!
Gewijzigd op 24/08/2010 14:24:21 door Joren de Wit
Zet eens echo voor die regel met $query = ... zodat je even kan zien wat de exacte query is die wordt uitgevoerd.
Piewiewiew sql-injection alarm!
Dat moet minstens worden:
Piewiewiew sql-injection alarm!
Dat moet minstens worden:
Hij redirect nu nog steeds niet naar het goeie adres:
header('Location: ' . $row['longurl']);
Dit gaat nu naar de index pagina..?
Toevoeging op 24/08/2010 14:28:22:
Oops ook vergeten... Goh. bedankt :)
header('Location: ' . $row['longurl']);
Dit gaat nu naar de index pagina..?
Toevoeging op 24/08/2010 14:28:22:
Jelmer rrrr op 24/08/2010 14:25:17:
Zet eens echo voor die regel met $query = ... zodat je even kan zien wat de exacte query is die wordt uitgevoerd.
Piewiewiew sql-injection alarm!
Dat moet minstens worden:
Piewiewiew sql-injection alarm!
Dat moet minstens worden:
Oops ook vergeten... Goh. bedankt :)
Gewijzigd op 24/08/2010 14:53:09 door Dalando De Zuil
Ik denk dat de beste oplossing voor je problemen is:
Ga PHP leren (tutorial).
Ga PHP leren (tutorial).
[zeikmode]
Lastig hé google?
"Wait, Let me google that for you"
[/zeikmode]
Ga eerst eens leren op welke manieren je kan debuggen. Niemand zal zonder debuggen een middelmatige tot grote website kunnen opzetten. Tijdens de ontwikkelingsfase is het ook niet erg om extra echo's te plaatsen om te controleren of je de juiste output krijgt. En mysql errors weergeven is dan wel het eerste wat je dient te doen om te achterhalen waar de fout zit.
Lastig hé google?
"Wait, Let me google that for you"
[/zeikmode]
Ga eerst eens leren op welke manieren je kan debuggen. Niemand zal zonder debuggen een middelmatige tot grote website kunnen opzetten. Tijdens de ontwikkelingsfase is het ook niet erg om extra echo's te plaatsen om te controleren of je de juiste output krijgt. En mysql errors weergeven is dan wel het eerste wat je dient te doen om te achterhalen waar de fout zit.




