Toon posts:

[PHP&Access] Update geeft foutmelding...

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb al gezocht in de search, maar daar staat niet zoveel omdat er meestal met MySQL wordt gewerkt, alleen ik zit aan Access vast als randvoorwaarde, dus ga niet zeggen dat MySQL beter geschikt is :+

Ik heb de volgende code:
PHP:
1
2
3
4
5
6
7
<?
    $message = "Gewijzigd.";
    
    $query = "UPDATE post SET inhoud = \"$message\" WHERE id = $post_id";
echo "<FONT COLOR=\"red\" SIZE=+2>$query</FONT>";    
    $cur = odbc_exec($cnx,$query);
?>

De ECHO geeft het volgende weer als zijnde de query: UPDATE post SET inhoud = "Gewijzigd." WHERE id = 65

De foutmelding die ontstaat is deze:
code:
1
2
Warning: SQL error: [Microsoft][ODBC Microsoft Access Driver] '' is not a valid name. Make sure that it does not include
invalid characters or punctuation and that it is not too long., SQL state 37000 in SQLExecDirect in edit.php on line 25

In lijn 25 staat dit:
code:
1
2
3
23:    $query = "UPDATE post SET inhoud = \"$message\" WHERE id = $post_id";
24:    echo "<FONT COLOR=\"red\" SIZE=+2>$query</FONT>";    
25:    $cur = odbc_exec($cnx,$query);

Er zit dus een fout in de query. Die quotes rond $message zijn een mislukte poging, zonder quotes gaat het ook fout :(. Wie weet wat ik verkeerd doe? :?

  • whoami
  • Registratie: December 2000
  • Laatst online: 15:53
Wat zijn die 'slashes' voor uw "$Message"?
Ben je er zeker van dat Post geen reserved woord is in Access en in PHP?
Heb je het al eens met enkele quotes geprobeerd, die dus : '

https://fgheysels.github.io/


Verwijderd

Topicstarter
Op woensdag 20 februari 2002 19:47 schreef whoami het volgende:
Wat zijn die 'slashes' voor uw "$Message"?
Ben je er zeker van dat Post geen reserved woord is in Access en in PHP?
Heb je het al eens met enkele quotes geprobeerd, die dus : '
Zoals gezegd: Die quotes rond $message zijn een mislukte poging, zonder quotes gaat het ook fout :( (beter lezen dus ;))

Verder geven enkele quotes deze melding:
code:
1
2
Warning: SQL error: [Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in
query expression '\'Gewijzigd.\''., SQL state 37000 in SQLExecDirect

En POST is niet gereserveerd. Ik heb al een bijne compleet forum waarin ik continu 'post' als tabelnaam gebruik in php, access en alles ertussenin. Dat kan dus het probleem niet zijn ;(

update: en de SLASHES zijn er voor als escapes voor de quotes. Anders wordt de string afgesloten >:)

  • Skinny
  • Registratie: Januari 2000
  • Laatst online: 13-09 23:09

Skinny

DIRECT!

Wat gebeurt er als je gewoon
code:
1
$query = "UPDATE post SET inhoud = \"Gewijzigd\" WHERE id = 1";

uitvoert.. dus zonder variabelen. Krijg je dan geen foutmelding, dan is de inhoud van je variabelen dus fout (speciale tekens ofzo)..

SIZE does matter.
"You're go at throttle up!"


Verwijderd

Topicstarter
Op woensdag 20 februari 2002 21:22 schreef Skinny het volgende:
Wat gebeurt er als je gewoon
code:
1
$query = "UPDATE post SET inhoud = \"Gewijzigd\" WHERE id = 1";

uitvoert.. dus zonder variabelen. Krijg je dan geen foutmelding, dan is de inhoud van je variabelen dus fout (speciale tekens ofzo)..
Dan krijg ik deze melding:

Warning: SQL error: [Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1., SQL state 07001 in SQLExecDirect

Vaag, want de syntax is dacht ik toch echt wel correct.

  • Skinny
  • Registratie: Januari 2000
  • Laatst online: 13-09 23:09

Skinny

DIRECT!

Van hier :

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/odbc/htm/odbcjetselect_statement_limitations.asp

komt
If an incorrect column name is entered into a SELECT statement, a SQLSTATE 07001 error, "Wrong Number of Parameters," is returned instead of a SQLSTATE S0022 error, "Column Not Found."
Misschien ? :?

SIZE does matter.
"You're go at throttle up!"


Verwijderd

Topicstarter
Op woensdag 20 februari 2002 22:31 schreef Skinny het volgende:
Van hier :

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/odbc/htm/odbcjetselect_statement_limitations.asp

komt
[..]

Misschien ? :?
Nope. De kolom heet echt 'inhoud'. double checked ;). Bedankt voor de URL ik ga er ff rondhangen :)

  • Skinny
  • Registratie: Januari 2000
  • Laatst online: 13-09 23:09

Skinny

DIRECT!

Ik heb ook wel eens met die "Too few parameters" foutmelding zitten klooien uit een VB progje (icm Access). Het komt erop neer dat Access een woord in de query niet herkend en er dus vanuit gaat dat het een parameter is.

Voer die query anders eens rechtstreeks in Access uit (letterlijk copy paste vanuit een print/echo in PHP)... Kijk wat er dan gebeurd.
code:
1
var_dump($query);

SIZE does matter.
"You're go at throttle up!"


Verwijderd

Topicstarter
AAARGH @ mijzelf :(

ff gespiekt in mijn eigen addpost.php en daar heb ik $message tussen single quotes staan, zonder escapes. Dat werkt dus ook hier :)

Iedereen bedankt voor de moeite; ik weet iig alweer een hoop meer over eea, zoals de error numbers op de m$-site

  • Postman
  • Registratie: Februari 2000
  • Laatst online: 01:25
Op woensdag 20 februari 2002 23:39 schreef PaGeTaBLe het volgende:
AAARGH @ mijzelf :(

ff gespiekt in mijn eigen addpost.php en daar heb ik $message tussen single quotes staan, zonder escapes. Dat werkt dus ook hier :)

Iedereen bedankt voor de moeite; ik weet iig alweer een hoop meer over eea, zoals de error numbers op de m$-site
Tja, je weet het al maar ik had het je zo kunnen vertellen.
Single quote's worden niet alleen bij PHP-Access gebruikt, btw. Java-InterBase maakt ook gebruik van single quote's. Dubbele quote's kunnen nooit in een SQL query. Dit omdat de query zelf omgeven wordt door ".
Pagina: 1