[php + interbase] bericht in een database zetten

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hallo,

ik heb een formulier gemaakt om een bericht in een database te zetten.
nu heb ik het zo gemaakt dat ie het bericht verdeeld in veldjes van 255 karakters.
maar als ik een bericht wil versturen naar de database krijg ik de volgende fout :

Warning: InterBase: Dynamic SQL Error SQL error code = -104 Token unknown - line 1, char 189 blaaaa in d:\phpdev\www\public\forum_nieuwprobleem2.php on line 56

het script :
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
<? 
$back="<br><br><a href='javascript:window.history.back()'><b>Vorige</b></a>"; 
if (empty($_POST['add_onderwerp'])) { 
echo "Je moet een onderwerp invullen! $back"; 
exit; 
} 
if (empty($_POST['add_bericht'])) { 
echo "Je moet wel een bericht invullen! $back"; 
exit; 
} 
$conn=ibase_connect("localhost:c:\phpdev\www\public\db\knowledgebase.gdb", "usern", "pass"); 
if (!$conn) { 
echo "Access Denied! $back"; 
exit; 
} 
$bericht = $_POST['add_bericht']; 
$bericht1 = substr($bericht, 0, 255);    // laat 255 karakters zien vanaf het 0e karakter 
$bericht2 = substr($bericht, 255, 255);    // laat 255 karakters zien vanaf het 255e karakter 
$bericht3 = substr($bericht, 510, 255);    // laat 255 karakters zien vanaf het 510e karakter 
$bericht4 = substr($bericht, 765, 255);    // laat 255 karakters zien vanaf het 765e karakter 

$query="INSERT INTO FAQ (FAQ_NR, WN_ID, FAQ_TITEL, RT_ID, PROG_ID, APP_ID, FAQ_TEKST1OPLOSSING, FAQ_TEKST2OPLOSSING, FAQ_TEKST3OPLOSSING, FAQ_TEKST4OPLOSSING) VALUES ('".$_POST['add_nr']."','".$_POST['add_gebruikersnaam']."','".$_POST['add_onderwerp']."','".$_POST['add_reactietype']."','".$_POST['add_programmeertaal']."','".$_POST['add_applicatie']."',$bericht1,$bericht2,$bericht3,$bericht4)"; 
$result=ibase_query($conn,$query) or die; 
} 
echo "Je bericht is verstuurd! $back"; 
ibase_close($conn) 
; ?>


blaaaa was het 2e woord dat ingevuld werd in de textarea

als ik bijv alleen 1 woord doe : test
dan geeftie ipv het 2e woord een , aan in de foutmelding

als ik dat doe :
'$bericht1','$bericht2','$bericht3','$bericht4'
krijg ik nog steeds dezelfde foutmelding

als ik doe :
'". $bericht1 ."','". $bericht2 ."' etc
ook dezelfde foutmelding

[ Voor 14% gewijzigd door Verwijderd op 01-03-2004 10:01 ]


Acties:
  • 0 Henk 'm!

  • mjax
  • Registratie: September 2000
  • Laatst online: 10:03
Je moet de values natuurlijk wel quoten! Je doet dat ook bij de andere veldwaardes, dus waarom niet bij FAQ_TEKST1OPLOSSING t/m FAQ_TEKST4OPLOSSING? Overigens zou het ook geen kwaad kunnen om veldwaardes te escapen.

Dit alles los van het feit dat het een enigszins vreemde constructie is om een lange tekstwaarde op te splitsen in 4 andere tekstvelden. Heeft Interbase geen veldtype om grote lappen tekst in op te slaan (zoals alle andere databases wel hebben)?

Acties:
  • 0 Henk 'm!

  • bigben04
  • Registratie: December 2001
  • Laatst online: 30-08 20:47
Je zou eens kunnen beginnen met debuggen: Print je query die je naar de DB stuurt eens gewoon op het scherm, vaak zie je dan al wat er fout gaat.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
he het is gelukt.. dom dat ik daar niet aan dacht om ff de query te printen.. hij pakte de ingelogde username ipv de id die erbij moest 8)7