login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Ongeldige query (Opgelost)

Offline larssy1 - 21/10/2011 08:58 (laatste wijziging 21/10/2011 09:31)
Avatar van larssy1MySQL beginner Hoi Mensen,

Om het kort te houden.
Ik wil via een query in een loop data in de database plaatsen (mogelijk uiteindelijk 5000+ records iedere halve dag)

Alleen om 1 of andere reden blijft deze query alsmaar falen.
  1. $qry = "INSERT INTO app_windowsphone_reviews ('appid', 'author', 'updated', 'content', 'rating', 'country') VALUES ('".$appid."','".$author."','".$updated."','".$content."','".$rating."','".$country[$i]."')";


waarbij de uiteindelijke uitput het volgende is:
  1. INSERT INTO app_windowsphone_reviews ('appid', 'author', 'updated', 'content', 'rating', 'country') VALUES ('21729556-a492-e011-986b-78e7d1fa76f8','user01','2011-10-15 07:05:00','no comment available','8','en-au')


De execute staat hierbij in de foreach waarmee hij de feeds uitleest, dus hij zou in theorie ook per feed een INSERT maken en uitvoeren voor in de database.

Uiteraard heb ik de code zelf al getest rechtstreeks in SQL, maar kwam daarbij niks verder.

Database structuur:
  1. CREATE TABLE IF NOT EXISTS `app_windowsphone_reviews` (
  2. `appid` longtext NOT NULL,
  3. `author` varchar(25) NOT NULL,
  4. `updated` datetime NOT NULL,
  5. `content` tinytext NOT NULL,
  6. `rating` int(3) NOT NULL,
  7. `country` varchar(6) NOT NULL
  8. ) ENGINE=MyISAM DEFAULT CHARSET=latin1;

11 antwoorden

Gesponsorde links
Offline vinTage - 21/10/2011 09:08
Avatar van vinTage Nieuw lid En de foutmelding is?
Offline larssy1 - 21/10/2011 09:10 (laatste wijziging 21/10/2011 09:24)
Avatar van larssy1 MySQL beginner #1064 - 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 ''appid', 'author', 'updated', 'content', 'rating', 'country') VALUES ('21729556-' at line 1


Zelfs als ik appid verwijder uit de insert query, gooit hij dezelfde fout.
echt een basis foutmelding, maar om een bepaalde reden lukt het me niet om deze op te lossen..
Offline vinTage - 21/10/2011 09:36
Avatar van vinTage Nieuw lid Misschien een nutteloze vraag, maar je hebt wel alle inputs door mysql_real_escape_string gehaald, of addslashes ?
Offline larssy1 - 21/10/2011 09:40
Avatar van larssy1 MySQL beginner ik gebruik standaard de volgende beveilingstypes
  1. public function injectString($string)
  2. {
  3. if (!ini_get('magic_quotes_gpc'))
  4. {
  5. $string = addslashes($string);
  6. }
  7.  
  8. return $string;
  9. }
  10.  
  11. public function injectInteger($integer)
  12. {
  13. if (is_numeric($integer))
  14. {
  15. $integer = $integer;
  16. }
  17. else
  18. {
  19. $integer = 1;
  20. }
  21.  
  22. return $integer;
  23. }
Offline vinTage - 21/10/2011 09:44
Avatar van vinTage Nieuw lid Maar haal je daar jouw 'inputs' ook doorheen ? want het enige wat ik kan verzinnen is 'ergens' een foute quote oid.

offtopic, gebruik mysql_real_escape_string ipv addslashes (addslashes is minder veilig zo men zegt - iets met nulbyte)
Offline larssy1 - 21/10/2011 09:48 (laatste wijziging 21/10/2011 09:54)
Avatar van larssy1 MySQL beginner er is geen user input.

De feeds zijn de input, en elke uiteindelijke waarde word er doorheen gehaalt.
(never trust the user input), zou wat zijn als ze DROP TABLE in hun review zetten ;)

deze query werkt wel weer,, maar ik zie geen verschil met de andere..
  1. INSERT INTO `app_windowsphone_reviews` (`appid`, `author`, `updated`, `content`, `rating`, `country`) VALUES ('asdf-45asdf', 'asdf9', '2011-10-21 00:00:00', 'asdf', '8', 'en-um');
Offline vinTage - 21/10/2011 10:02
Avatar van vinTage Nieuw lid ah, je hebt quotes rond de veldnamen 

insert into bla (quote veldnaam quote, etc

duurde lang 
Bedankt door: larssy1
Offline lemoinet - 21/10/2011 10:03
Avatar van lemoinet PHP gevorderde haal de quotes eens weg rond value '8' voor rating
Offline larssy1 - 21/10/2011 10:10 (laatste wijziging 21/10/2011 10:12)
Avatar van larssy1 MySQL beginner
vinTage schreef:
ah, je hebt quotes rond de veldnamen 

insert into bla (quote veldnaam quote, etc

duurde lang 

haha dat was het.. Ik dacht 'maakt niet uit' omdat de database ook de quotes rond de veldnamen genereert.. het enige probleem is dat ik nu zie in de database:

<a:content type="html">Yall funny</a:content>

Kan dat komen omdat ik $content = $child2->content->asXML() heb?
---
en alweer beantwoord ik me eigen vraag.. dom dom dom -.-
Offline vinTage - 21/10/2011 10:14
Avatar van vinTage Nieuw lid
larssy1 schreef:
[..quote..]
haha dat was het.. Ik dacht 'maakt niet uit' omdat de database ook de quotes rond de veldnamen genereert..


nee, dat zijn backtics (beetje slordig, zo kan je bv gereserveerde veldnamen gebruiken)
Offline larssy1 - 21/10/2011 10:58
Avatar van larssy1 MySQL beginner
vinTage schreef:
[..quote..]

nee, dat zijn backtics (beetje slordig, zo kan je bv gereserveerde veldnamen gebruiken)

Ah oke, nja het is werkend , waarvoor bedankt voor je hulp..

Heb net de functie zelf werkend gekregen, duurde even omdat daar weer andere bugs naar voren kwamen.. 

maar goed, thx!
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.207s