[php] Variabele SQL-query

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik probeer een variabele SQL-query samen te stellen uit verschillende andere variabelen, zoals hieronder:

PHP:
1
2
$wt_insert = 'insert into ' . TBL_WT . ' (w_id, t_id) values (' . $row['w_id'] . ', ' . $t_id . ')';
$result = mysql_query($wt_insert);


Normaal werkt dit altijd als een trein, alleen wordt de query hier niet uitgevoerd. Heeft iemand een idee? Ik heb alle mogelijke variaties van aanhalingstekens en haakjes al geprobeerd, maar niks werkt.

O, en als ik de string $wt_insert echo op het scherm, die kopieer en plak in PHP MyAdmin, wordt de query wel goed uitgevoerd...

[ Voor 19% gewijzigd door Verwijderd op 07-01-2004 12:00 ]


Acties:
  • 0 Henk 'm!

  • Cyphax
  • Registratie: November 2000
  • Laatst online: 15:22

Cyphax

Moderator LNX
Dit gaat iig fout
'insert into ' . TBL_WT . '

Als TBL_WT een var is uit je PHP code moet er een $ voor, anders zet er
'insert into TBL_WT' neer...

Nog het volgende: ik ga er vanuit dat die variabelen die je wil inserten geen strings ofzo zijn?
En zet hier eens neer wat die echo oplevert...

[ Voor 47% gewijzigd door Cyphax op 07-01-2004 12:06 ]

Saved by the buoyancy of citrus


Acties:
  • 0 Henk 'm!

  • McFreak
  • Registratie: December 2000
  • Laatst online: 07-09 16:15

McFreak

McFraGG de gekste !!

probeer anders de query is los van php rechtstreeks via mysql prompt te gooien

McFraGG de gekste !!


Acties:
  • 0 Henk 'm!

  • Thijsmans
  • Registratie: Juli 2001
  • Laatst online: 11-09 15:23

Thijsmans

⭐⭐⭐⭐⭐ (5/5)

Cyphax schreef op 07 januari 2004 @ 12:04:
Dit gaat iig fout
'insert into ' . TBL_WT . '

Als TBL_WT een var is uit je PHP code moet er een $ voor, anders zet er
'insert into TBL_WT' neer...

Nog het volgende: ik ga er vanuit dat die variabelen die je wil inserten geen strings ofzo zijn?
En zet hier eens neer wat die echo oplevert...
Ooit van constanten gehoord :?

PHP:
1
2
3
define('ERR_MSG', 'Er is iets fout gegaan');

echo ERR_MSG
RaR schreef op 07 januari 2004 @ 12:04:
probeer anders de query is los van php rechtstreeks via mysql prompt te gooien
Hij zei net dat phpMyAdmin hem wel pakt, dus de prompt is overbodig 8)7

Ik gok dat je die $result = moet weghalen, omdat je dit doorgaans gebruikt voor result-identifier, en deze query geen result output omdat je alleen iets insert :)

Privacy-adepten vinden op AVGtekst.nl de Nederlandse AVG-tekst voorzien van uitspraken en besluiten.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
offtopic:
(Hé, waar is de Quick Reply gebleven?)


Dit geeft de echo:
PHP:
1
insert into wijk_w_t (w_id, t_id) values (14, 15);


Zoals ik al schreef, doet de query het wel gewoon goed als ik hem uitvoer in PHP MyAdmin.

Acties:
  • 0 Henk 'm!

  • Cyphax
  • Registratie: November 2000
  • Laatst online: 15:22

Cyphax

Moderator LNX
Prammenhanger schreef op 07 januari 2004 @ 12:10:
[...]


Ooit van constanten gehoord :?

PHP:
1
2
3
define('ERR_MSG', 'Er is iets fout gegaan');

echo ERR_MSG



[...]

Hij zei net dat phpMyAdmin hem wel pakt, dus de prompt is overbodig 8)7

Ik gok dat je die $result = moet weghalen, omdat je dit doorgaans gebruikt voor result-identifier, en deze query geen result output omdat je alleen iets insert :)
Owja :o Oeps :)
Ja mysql_query hoef je niet in een var te stoppen maar dat het dan niet zou werken als je 't wel doet is mij nieuw.

[ Voor 18% gewijzigd door Cyphax op 07-01-2004 12:15 ]

Saved by the buoyancy of citrus


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
TBL_WT is inderdaad een constante...

Ook zonder $result doet-ie het niet (en dat zou ook geen verschil hoeven maken).

Acties:
  • 0 Henk 'm!

  • ripexx
  • Registratie: Juli 2002
  • Laatst online: 10:23

ripexx

bibs

Sluit je sql statement eens af met een ; PHPMyAdmin valt daar niet over en voegt deze zelf toe. Je code wordt dan:
PHP:
1
2
3
4
<?
$wt_insert = 'insert into ' . TBL_WT . ' (w_id, t_id) values (' . $row['w_id'] . ', ' . $t_id . ');'; 
$result = mysql_query($wt_insert);
?> 

Verder is het gebruik van mysql_error zeker aan te bevelen in een ontwikkelings/debug fase.

[ Voor 11% gewijzigd door ripexx op 07-01-2004 12:50 ]

buit is binnen sukkel


Acties:
  • 0 Henk 'm!

  • RvdH
  • Registratie: Juni 1999
  • Laatst online: 04-02 14:45

RvdH

Uitvinder van RickRAID

idd.

PHP:
1
$result = mysql_query($wt_insert) or die(mysql_error());

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ah! mysql_error() leverde inderdaad een foutmelding op (foutje in de tabelnaam), maar dan snap ik niet waarom het met het invoeren via PHP MyAdmin wel goed ging.

In ieder geval bedankt! Voortaan staat er standaard mysql_error() achter mijn queries!

[ Voor 4% gewijzigd door Verwijderd op 07-01-2004 13:30 ]


Acties:
  • 0 Henk 'm!

  • Thijsmans
  • Registratie: Juli 2001
  • Laatst online: 11-09 15:23

Thijsmans

⭐⭐⭐⭐⭐ (5/5)

of je maakt een functie die de error afvangt :)

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
function query( $q )
{
     $result = mysql_query( $q );

     $error = mysql_error();

     if( $error != '' )
     {
          echo '<b>MySQL-error ' . mysql_errno() . ':</b> ' . $error . '<br>';
          return false;
     }

     return $result;
}


Iets in die richting :)

Privacy-adepten vinden op AVGtekst.nl de Nederlandse AVG-tekst voorzien van uitspraken en besluiten.

Pagina: 1