Probleme mit Anführungszeichen
Rolf
- datenbank
Hey.
Ich will ein kleines Skript basteln mit IP Sperre das einerseits zur Analyse meiner Besucher dient und andererseits später auch als Counter verwendet wird.
So siehts aus:
<?php
include('sql.php');
$table='statistik';
$ip=$REMOTE_ADDR;
$browser=$HTTP_USER_AGENT;
$ref=$HTTP_REFERER;
$date=date('d.m.Y');
$query=mysql_query('SELECT id FROM '.$table.' WHERE ip='.$ip) or die (mysql_error());
if(mysql_num_rows($query)>0){
$this_time=time();
$querys=mysql_query('SELECT datum,zeit FROM '.$table.' WHERE ip='.$ip) or die (mysql_error());
$row=mysql_fetch_array($querys) or die (mysql_error());
if($date=$row['datum']&&$this_time<($row['zeit']+14400)){
die();
} else {
$dummy=mysql_query('INSERT INTO '.$table.' (ip,browser,ref,datum,zeit) VALUES ('.$ip.','.$browser.','.ref.','.$date.','.$this_time) or die (mysql_error());
}
}
?>
Nur leider bekomme ich immer die Fehlermeldung:
"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 '' at line 1"
Aber ich weiß nicht wo da der Fehler ist.
Hoffe ihr könnt mir helfen.
Mit freundlichen Grüßen
Euer über alles schätzender Rolf
Hi,
Nur leider bekomme ich immer die Fehlermeldung:
"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 '' at line 1"
Aber ich weiß nicht wo da der Fehler ist.
wie lauten denn die SQL-Statements, die Du gegen die Datenbank feuerst?
Cheatah
Das ist das ganze Skript:
<?php
include('sql.php');
$table='statistik';
$ip=$REMOTE_ADDR;
$browser=$HTTP_USER_AGENT;
$ref=$HTTP_REFERER;
$date=date('d.m.Y');
$query=mysql_query('SELECT id FROM '.$table.' WHERE ip='.$ip) or die (mysql_error());
if(mysql_num_rows($query)>0){
$this_time=time();
$querys=mysql_query('SELECT datum,zeit FROM '.$table.' WHERE ip='.$ip) or die (mysql_error());
$row=mysql_fetch_array($querys) or die (mysql_error());
if($date=$row['datum']&&$this_time<($row['zeit']+14400)){
die();
} else {
$dummy=mysql_query('INSERT INTO '.$table.' (ip,browser,ref,datum,zeit) VALUES ('.$ip.','.$browser.','.ref.','.$date.','.$this_time) or die (mysql_error());
}
}
?>
Hi,
Das ist das ganze Skript:
ich habe nicht nach PHP-Code gefragt, sondern nach SQL-Code.
Cheatah
yo,
wenn du spalten hast, die vom typ character sind, dann müssen diese auch mit einfachen anführungszeichen eingeschlossen werden, sowohl in der abfrage als auch im insert statement. da du diese aber schon für php benutzt, würde ich vorschlagen, du benutzt doppelte anfürhrungszeichen in php und einfache für die sql anweisung.
Beispiel:
$query=mysql_query("SELECT id FROM ".$table." WHERE ip='".$ip."'") or die (mysql_error());
dass musst du in der insert anweisung auch entsprechend machen.
Ilja
$query=mysql_query("SELECT id FROM ".$table." WHERE ip='".$ip."'") or die (mysql_error());
Hey, super danke, das freut mich, so klappts!!!
mfg
Rolf