---
title: "Error, varför?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/89015-error-varför"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "martin@rawgfx"
published: "2003-10-20T16:58:39.000Z"
updated: "2003-10-20T17:52:49.000Z"
replies: 16
views: 454
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/89015-error-varför"
---

# Error, varför?

## #1 — martin@rawgfx, 2003-10-20T16:58Z

Jag försöker bygga ett newsscript i PHP ODBC (låter inte så bra), och det funkar att selecta info ur databasen (ms access), men det funkar inte att sätta in data.

Koden i add.php ser ut såhär:

```php
$conn=odbc_connect('rawgfx.net_db','',''); 
if (!$conn)
{
exit("Connection Failed: " . $conn); 
} 
$date = $_POST['date'];
$title = $_POST['title'];
$by = $_POST['by'];
$new = $_POST['new'];
$sql = "INSERT INTO News (date, title, by, new) VALUES ('$date, $title, $by, $new)";
odbc_exec($conn,$sql);
while (odbc_fetch_row) {
}
odbc_close($conn);
```

Jag får oftast felmeddelanden såsom: "Parse error: parse error, unexpected T_VARIABLE in h:\\home\\users\\FA03-25-04-01_pr92pynfrvcndmhurfe9\\rawgfx.net\\public_html\\add.php on line 14", alltså på raden där SQL koden ligger.

Vad kan det bero på?

Permalänk: https://www.webforum.nu/p/89015

## #2 — Qimen, 2003-10-20T17:02Z

Re: Error, varför?

```php
$conn=odbc_connect('rawgfx.net_db','',''); 
if (!$conn)
{
exit("Connection Failed: " . $conn); 
} 
$date = $_POST['date'];
$title = $_POST['title'];
$by = $_POST['by'];
$new = $_POST['new'];
$sql = "INSERT INTO News (date, title, by, new) VALUES ($date, $title, $by, $new)";
odbc_exec($conn,$sql);
while (odbc_fetch_row) {
}
odbc_close($conn);
```

Du hade råkat få med en ' efter VALUES (

/r **Välkommen till wF!** :bire

Permalänk: https://www.webforum.nu/p/1190617

## #3 — martin@rawgfx, 2003-10-20T17:11Z

Tack... Men när jag quotade alla variabler ($date,$title osv) fick jag detta mess:

Warning: SQL error: \[Microsoft\]\[ODBC Microsoft Access Driver\] Syntax error in INSERT INTO statement., SQL state 37000 in SQLExecDirect in h:\\home\\users\\FA03-25-04-01_pr92pynfrvcndmhurfe9\\rawgfx.net\\public_html\\add.php on line 15

Fatal error: Maximum execution time of 30 seconds exceeded in h:\\home\\users\\FA03-25-04-01_pr92pynfrvcndmhurfe9\\rawgfx.net\\public_html\\add.php on line 16

Nåt skummt eller?

Permalänk: https://www.webforum.nu/p/1190622

## #4 — @nders, 2003-10-20T17:14Z

*By* är ett reserverat ord i SQL (exempevis ingår det i ORDER BY och GROUP BY). Byt namn på kolumnen.

Mvh

Permalänk: https://www.webforum.nu/p/1190627

## #5 — martin@rawgfx, 2003-10-20T17:17Z

Tack! :D 

SKa testa ;)

Permalänk: https://www.webforum.nu/p/1190633

## #6 — SPiN, 2003-10-20T17:18Z

Ja, din SQL-fråga borde se ut så här troligtvis:

```
INSERT INTO News ([date], [title], [by], [new]) VALUES (#$date#, '$title', '$by', $new)
```

Nu antar jag att fältet 'date' är av typen Datum, fälten 'title' och 'by' är av typen Text/PM och att fältet 'new' är av typen Tal.

Datum-fält ska omslutas av staket ( # ) och textfält ska omslutas av enkelfnuttar ( ' ). Ordet date är även ett reserverat ord i Access ( Som jag antar att du använder, eftersom att du ansluter via ODBC ) så det bör ha hakparenteser kring sig. Likaså med ordet by. Hur det är med new och title kan jag inte säga, men jag satte hakparenteser där också - det gör ju ingenting. :)

Permalänk: https://www.webforum.nu/p/1190636

## #7 — SPiN, 2003-10-20T17:19Z

Jäkla @nders att va snabb, men han har inte lika goda ögon som vi ynglingar. Missar ju en massa. ;) :p

Permalänk: https://www.webforum.nu/p/1190638

## #8 — @nders, 2003-10-20T17:20Z

Nej, jag missar inget. Däremot finns det en himla massa jag inte förstår, exempelvis php. ;)

Mvh

Permalänk: https://www.webforum.nu/p/1190639

## #9 — SPiN, 2003-10-20T17:21Z

För övrigt är hela din kod rätt sne för att koppla mot ODBC. Ta gärna en titt i den här tråden för att få det rätt: <http://www.webforum.nu/showthread.php?s=&forumid=23&threadid=71053>

Hm, i den använder jag iofs COM() för att ansluta mot ODBC, men det är likabra - ODBC-funktionerna är inte så stabila vad jag har förstått. :)

@nders\> Jaja, vi säger väl det. ;)

Permalänk: https://www.webforum.nu/p/1190640

## #10 — SPiN, 2003-10-20T17:26Z

Här är en tråd som tar upp ODBC-kopplingar:
<http://www.webforum.nu/showthread.php?s=&forumid=23&threadid=42260>

Permalänk: https://www.webforum.nu/p/1190643

## #11 — martin@rawgfx, 2003-10-20T17:29Z

joo tack... Den "snea" koden funkar att selecta med... Jag skulle självklart ha använt MySQL, men jga har inte pengar till en db (kostar 400:- på mitt webhotell :/ )

Men tack för hjälpen!

Bytte ut by mot "author" istället...

Permalänk: https://www.webforum.nu/p/1190647

## #12 — SPiN, 2003-10-20T17:32Z

Inget ont om Access ( Även fast det inte är att föredra i PHP's fall ), det var inte så jag menade. Med 'sne' kod syftade jag  på att du har en loop som inte gör någonting, och efter att du har gjort en ren insert till databasen. Den kan du helt ta bort. Jag formulerade mig lite dåligt bara. :)

Funkar det nu?

Permalänk: https://www.webforum.nu/p/1190652

## #13 — martin@rawgfx, 2003-10-20T17:35Z

Förresten, vad menas med "maximum execution time 30 sec exceeded"?

Permalänk: https://www.webforum.nu/p/1190653

## #14 — martin@rawgfx, 2003-10-20T17:38Z

ok... Som sagt... Det e lite skummt... Det finns inga fel, men det kommer ej in i db:n....

Måste jag skriva någon extra kod för det?

Permalänk: https://www.webforum.nu/p/1190655

## #15 — SPiN, 2003-10-20T17:42Z

'Maximum execution time 30 sec exceeded' betyder att ditt script tar över 30 sec att ladda, och PHP avbryter exekveringen av det. Det kan ha att göra med din loop.

Testa följande kod:

```
$conn=odbc_connect('rawgfx.net_db','',''); 

if (!$conn)
{

exit("Connection Failed: " . odbc_errormsg() ); 

} 

$date = $_POST['date'];
$title = $_POST['title'];
$by = $_POST['by'];
$new = $_POST['new'];

$sql = "INSERT INTO News ([date], [title], [by], [new]) VALUES (#$date#, '$title', '$by', $new)";

odbc_exec($conn,$sql);
odbc_close($conn);
```

Som sagt, beroende på vad dina fält är för typer bör du ha olika literaler kring värdena som du skickar in i SQL-frågan.

Permalänk: https://www.webforum.nu/p/1190659

## #16 — martin@rawgfx, 2003-10-20T17:50Z

Tack!!! Det funka :D

You're my god...

Tack så mycket för hjälpen!

Permalänk: https://www.webforum.nu/p/1190668

## #17 — SPiN, 2003-10-20T17:52Z

NP. :)
Markera gärna tråden som löst också, genom att klicka på länken "Acceptera som slutgiltigt svar" nere i ett inlägg. Det underlättar för andra användare som vill söka på bara lösta trådar. :)

Permalänk: https://www.webforum.nu/p/1190671

---

Tråden på webben: https://www.webforum.nu/amne/php/89015-error-varför
