Hvorfor virker min MySQL query ikke i php?

Tags:    mysql php phpmyadmin

Hej Folkens.

Jeg sidder og leger med noget PHP og MySQL i min fritid.

Jeg har lavet mig et SQL kald som selecter et felt og updater nogle andre felter i et andet table baseret på det første select.

Problemet er at min SQL virker helt perfekt når jeg kører den i phpMyAdmin SQL vinduet. Men så snart jeg smider min SQL ind i php returnerer den følgende fra mysql_error();

Fold kodeboks ind/udKode 


SQL i phpMyAdmin (Virker fint)
Fold kodeboks ind/udSQL kode 


SQL i PHP (Virker ikke)
Fold kodeboks ind/udPHP kode 


Håber der er nogen som er skarpe på det område.
Jeg tænker at det har noget med min IF-sætning at gøre, men hvorfor virker den ikke fra PHP af?
Jeg har ikke pasted connection koden til MySQL med, men jeg ved den virker da jeg bruger den andre steder også.

Hilsen Panen



Indlæg senest redigeret d. 23.02.2012 14:44 af Bruger #16319
10 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 21 karma
Sorter efter stemmer Sorter efter dato
http://php.net/manual/en/function.mysql-query.php fortæller, at "multiple queries are not supported"



prøv at brug mysqli istedet for mysql

http://pt2.php.net/manual/en/book.mysqli.php



Er ikke sikker men kan være pga den ikke forstår dine ; separators

evt prøv at indsæt det her i toppen af din query
Fold kodeboks ind/udSQL kode 




Indlæg senest redigeret d. 23.02.2012 15:08 af Bruger #3427
Er ikke sikker men kan være pga den ikke forstår dine ; separators

evt prøv at indsæt det her i toppen af din query
Fold kodeboks ind/udSQL kode 


Tak for svaret. Det hjalp desværre ikke, nu får jeg en fejl på delimiter istedet.

Kan det være min host som har disabled mulighed for flere queries i 1 streng eller disabled IF kommando eller noget? Ville det overhovedet kunne lade sig gøre at disable når min SQL virker i phpMyAdmin som jo kører hos min host også?



Hvis den virker i phpMyAdmin virker den også fra PHP. Det er udelukkende et spørgsmål om, hvordan du skriver dit SQL statement.

Jeg ved ikke hvad din IF statement gør i denne sammenhæng, men prøv at definere et SQL statement af gangen i PHP og se hvad der sker. Barber problemstillingen ned, så det er nemmere at overskue.



Prøvede lige med SELECT alene. Og det virker fint.
Laver jeg så en delimiter og smider den samme SELECT ind igen, får jeg fejlen.

Så fejlen må være at jeg kører 2 eller 3 sætninger i 1 query.. :/



Mysqli ser spændende ud! Men nu har jeg prøvet at forkorte min SQL sætning til en enkel query istedet, som ser således ud:

Fold kodeboks ind/udSQL kode 


Hvis jeg kører denne SQL uden min SELECT SubQuery virker den fint. Samtidig virker den også fint med SubQueryen alene, men den virker ikke som jeg har skrevet den. Den melder denne fejl som jeg ikke kan få til at passe? :/

Fold kodeboks ind/udSQL kode 


Driver mig til vanvid, så hvis nogen ved noget må i meget gerne smide en kommentar!

På forhånd tak :)



Indlæg senest redigeret d. 24.02.2012 15:51 af Bruger #16319

Fold kodeboks ind/udSQL kode 


Driver mig til vanvid, så hvis nogen ved noget må i meget gerne smide en kommentar!

På forhånd tak :)


MYSQL tillader ikke at du opdaterer eller sletter fra en tabel, som du også læser fra i din subquery.



Er det mig der er dum eller er = IF(1 = 1, 1, 1) ikke lig med = 1 altid?

Og kunne du ikke tage at lave et UPDATE tabelx JOIN tabely ON x = y SET ..... WHERE ....

Altså - joine den tabel du ellers vil læse fra på den tabel du opdaterer og så bare læse de rækker fra den anden tabel som du har brug for?

Det er muligt at jeg ikke har læst din kode grundigt nok og at det ikke kan lade sig gøre...




Indlæg senest redigeret d. 24.02.2012 20:24 af Bruger #17015
Er det mig der er dum eller er = IF(1 = 1, 1, 1) ikke lig med = 1 altid?


Jo, med mindre han har genereret det ud fra PHP



t