[PHP & MSSQL] Query klopt niet!

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Snow_King
  • Registratie: April 2001
  • Laatst online: 06:07

Snow_King

Konijn is stoer!

Topicstarter
Hoi,

Ik heb een MSSQL database en gebruik PHP
Even voorop, ik ben totale n00b met MSSQL, ken alleen PHP & MySQL echt goed, maarja SQL is SQL.

Nu moet ik helaas noodgedwongen gebruik maken van MSSQL, roeien met de riemen die je hebt.

In iedergeval, ik wil een query uitvoeren en dat gaat niet.
INSERT INTO webdata SET ID = '4', parentID = '0', titel = 'test', tekst = 'test', foto_boven = '', foto_onder = '', foto_links = '', foto_rechts = '', subparent = ''"
En ik krijg als error
message: Incorrect syntax near the keyword 'SET'. (severity 15)
De fout zit hem dus rond SET, ik heb echt al van alles geprobeerd, extended insert, complete inserts, maar gaven allemaal een error, ik kom er dus echt niet uit.

Nu ik toch een vraag aan het stellen ben.

Ik had ASP.net enterprise manager gedownload en wilde via deze manage tool even deze queries handmatig invoeren, verder gebruikt de site namelijk alleen UPDATE en SELECT, dus de INSERT is dan niet meer nodig, maar die geeft een error
Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately.

Compiler Error Message: BC30451: Name 'AppInterface' is not declared.

Source Error:


Line 8: <tr><td align="center" valign="top">
Line 9:
Line 10: <% AppInterface.DrawWindowHeader ("Connect to Server", "javascript:window.close();", "350") %>
Line 11:
Line 12: <form runat="server">
Ik heb zelf helemaal niets met die code gedaan, gedownload en ge-upload..
Ik heb al meerdere versies gedownload, iemand een idee?

Bedankt!

Acties:
  • 0 Henk 'm!

  • whoami
  • Registratie: December 2000
  • Laatst online: 23:16
Snow_King schreef op 20 October 2003 @ 20:41:

Nu moet ik helaas noodgedwongen gebruik maken van MSSQL, roeien met de riemen die je hebt.
Waarom helaas?
Als je eenmaal SQL Server goed kent, en de beperkingen van MySQL kent, dan zal je later zeggen:
ik moet nu helaas MySQL gebruiken.

Je syntax van je INSERT statement is idd helemaal verkeerd.
Misschien kijk je best eens in de Books Online over hoe je een INSERT schrijft:

code:
1
2
3
INSERT INTO tabel (veld, veld2, veld3)
VALUES
(1, 'blaat', 'schaap')


Het SET keyword gebruik je bij een UPDATE, en niet bij een INSERT.

[ Voor 32% gewijzigd door whoami op 20-10-2003 20:50 ]

https://fgheysels.github.io/


Acties:
  • 0 Henk 'm!

  • whoami
  • Registratie: December 2000
  • Laatst online: 23:16
Zie trouwens ook deze tutorial, die kan je nog wel eens van pas komen.

https://fgheysels.github.io/


Acties:
  • 0 Henk 'm!

  • faabman
  • Registratie: Januari 2001
  • Laatst online: 08-08-2024
INSERT INTO webdata SET ID = '4', parentID = '0', titel = 'test', tekst = 'test', foto_boven = '', foto_onder = '', foto_links = '', foto_rechts = '', subparent = ''"
waarom probeer je niet gewoon

ASP:
1
2
INSERT INTO tbl_whatever(veld1, veld2, veld3)
VALUES(waarde1, waarde2, waarde3);


en een opmerking als ik moet nu 'helaas' sqlserver gebruiken terwijl je bij mysql vandaan komt lijkt me niet echt terecht... kijk daarvoor maar eens hier Een poging de magie rond MySQL te verwijderen :)

edit:
damn, net te laat :+

[ Voor 28% gewijzigd door faabman op 20-10-2003 20:55 ]

Op zoek naar een baan als Coldfusion webdeveloper? Mail me!


Acties:
  • 0 Henk 'm!

  • Snow_King
  • Registratie: April 2001
  • Laatst online: 06:07

Snow_King

Konijn is stoer!

Topicstarter
ik bedoel met helaas, ik ben MySQL gewent, dus helaas dat ik met MSSQL moet werken, no flame oid
message: Cannot insert explicit value for identity column in table 'webdata' when IDENTITY_INSERT is set to OFF
Zegt me dus helemaal niets, er is iets met een kolom, maar ik heb niets aan de tabel veranderd en heb er 2 rows in gekregen, daarna niets meer :(

ID 2 en 3 staan er in..
INSERT INTO webdata (ID, parentID, titel, tekst, foto_boven, foto_onder, foto_links, foto_rechts, subparent) VALUES (4, '', 'schaap', '', '', '', '', '', '')

[ Voor 72% gewijzigd door Snow_King op 20-10-2003 21:12 ]


Acties:
  • 0 Henk 'm!

  • nrg
  • Registratie: April 2001
  • Laatst online: 22:28

nrg

ID op auto_increment en ID handmatig setten? Kan dat bij MSSQL?

Acties:
  • 0 Henk 'm!

  • Limhes
  • Registratie: Oktober 2001
  • Laatst online: 18-09 08:38
Is het ID veld niet toevallig een primary key met auto_increment oid.?

Acties:
  • 0 Henk 'm!

  • whoami
  • Registratie: December 2000
  • Laatst online: 23:16
nrg schreef op 20 oktober 2003 @ 21:15:
ID op auto_increment en ID handmatig setten? Kan dat bij MSSQL?
Dat kan je, mits je IDENTITY_INSERT op ON hebt staan.

Maar, je gaat natuurlijk wel geen quotes rond een numerieke waarde gaan zetten.

https://fgheysels.github.io/


Acties:
  • 0 Henk 'm!

  • Snow_King
  • Registratie: April 2001
  • Laatst online: 06:07

Snow_King

Konijn is stoer!

Topicstarter
Limhes schreef op 20 October 2003 @ 21:15:
Is het ID veld niet toevallig een primary key met auto_increment oid.?
ja.......

Met welke tool kan ik dit indien nodig veranderen, ik heb door de firewalls geen access van buitenaf, dus ik heb een webbased tool nodig, zoals in de startpost gezegt, die ASP.net manager werkt niet :(

Acties:
  • 0 Henk 'm!

  • whoami
  • Registratie: December 2000
  • Laatst online: 23:16
Waarom mag dat veld geen identity zijn?
Als het een identity veld is, dan laat je het DBMS zelf de PK bepalen.
Stel dat je tabel er zo uit ziet:
code:
1
2
3
id  int identity,
naam  varchar(20),
voornaam   varchar(20)

Dan doe je die insert gewoon zo:
code:
1
2
3
INSERT into tabel
(naam, voornaam)
VALUES ('whoami', 'blaat')


SQL Server zal zelf een uniek nummer aan id toewijzen.
Als je de waarde van ID wilt weten na je INSERT , dan doe je een:
code:
1
select @@identity from tabel

of een
code:
1
select scope_identity() from tabel

https://fgheysels.github.io/


Acties:
  • 0 Henk 'm!

  • faabman
  • Registratie: Januari 2001
  • Laatst online: 08-08-2024
je kan gewoon rechtstreeks een wijziging op de betreffende tabel doorvoeren door een sql-statement uit te voeren, op books-online of sqlteam is wel wat te vinden

en verder heeft whoami natuurlijk helemaal gelijk :)

[ Voor 16% gewijzigd door faabman op 20-10-2003 21:46 ]

Op zoek naar een baan als Coldfusion webdeveloper? Mail me!


Acties:
  • 0 Henk 'm!

  • Snow_King
  • Registratie: April 2001
  • Laatst online: 06:07

Snow_King

Konijn is stoer!

Topicstarter
juist, ik ben dus niet zo thuis in de SQL wereld queries, daarvoor heb ik altijd phpMyAdmin, maar nu dus niet...

Acties:
  • 0 Henk 'm!

  • whoami
  • Registratie: December 2000
  • Laatst online: 23:16
Snow_King schreef op 20 October 2003 @ 21:59:
juist, ik ben dus niet zo thuis in de SQL wereld queries, daarvoor heb ik altijd phpMyAdmin, maar nu dus niet...
Daarom heb ik je die SQL tutorial link gegeven....

https://fgheysels.github.io/


Acties:
  • 0 Henk 'm!

  • Snow_King
  • Registratie: April 2001
  • Laatst online: 06:07

Snow_King

Konijn is stoer!

Topicstarter
whoami schreef op 20 October 2003 @ 22:00:
[...]


Daarom heb ik je die SQL tutorial link gegeven....
daarom ben ik die ook aan het lezen ;)

Acties:
  • 0 Henk 'm!

  • Snow_King
  • Registratie: April 2001
  • Laatst online: 06:07

Snow_King

Konijn is stoer!

Topicstarter
Sorry dat ik deze moet kicken, maar ik wil een query uitvoeren maar dat gaat niet, ik heb http://www.w3schools.com/sql/sql_alter.asp gelezen en gedaan zoals het daar staat.

Ik doe
code:
1
ALTER TABLE webdata ADD tekst LONGTEXT


LONGTEXT is toch gewoon een bestaande kolom type of zie ik het verkeerd?
TEXT is namelijk te kort, moet een hele lange lap tekst in.
Warning: mssql_query(): message: Column or parameter #5: Cannot find data type LONGTEXT. (severity 16)

Acties:
  • 0 Henk 'm!

  • whoami
  • Registratie: December 2000
  • Laatst online: 23:16
In SQL Server heb je geen datatype LONGTEXT, wel text, ntext, etc....
Kijk eens in de Books Online van SQL Server welke data-types je zoal hebt.

Trouwens, waarom is een text - data type te klein?

https://fgheysels.github.io/


Acties:
  • 0 Henk 'm!

  • Snow_King
  • Registratie: April 2001
  • Laatst online: 06:07

Snow_King

Konijn is stoer!

Topicstarter
nou, ik wil een lange tekst inserten, maar die wordt na veel tekens afgekapt. (gewoon midden in een zin, niet op een apart teken)

Dus ik gok dat het niet past in een TEXT field, maar dat je iets van een LONGTEXT nodig hebt

[ Voor 14% gewijzigd door Snow_King op 27-10-2003 15:23 ]


Acties:
  • 0 Henk 'm!

  • whoami
  • Registratie: December 2000
  • Laatst online: 23:16
Misschien heb je hier iets aan:
Klik

Zoals je ziet kan dat text data type best wel een aardige lap tekst aan. Misschien heeft het eerder te maken met de variable waarin je die tekst hebt zitten voordat je 'm naar de DB post.

https://fgheysels.github.io/


Acties:
  • 0 Henk 'm!

  • Snow_King
  • Registratie: April 2001
  • Laatst online: 06:07

Snow_King

Konijn is stoer!

Topicstarter
Nou,

Ik heb 2 dingen bekeken.
A of de variable bij de insert alles bevat, ja, als ik die echo met PHP verschijnt alle tekst die in de database moet.

Waar kapt hij nou af?
downloading of gebruik van *hak* software
Daar zit geen raar teken, dus waarom hij daar afbreekt?

PHP:
1
2
3
4
5
6
7
8
9
10
11
<?php

$id = $_POST["id"];
$titel = $_POST["titel"];
$tekst = $_POST["tekst"];
$tekst = addslashes($tekst);

$sql = "UPDATE webdata SET titel='$titel', tekst='$tekst' WHERE ID = '$id'";

    if(mssql_query($sql)) {
?>

[ Voor 30% gewijzigd door Snow_King op 27-10-2003 15:33 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Er zijn vaker problemen met MSSQL en php.

Ik zelf heb een soortgelijk probleemopgelost door het volgende te doen in mijn queries:

select convert(text,nws_shortdescription) as nws_shortdescription from News

Als ik het convert krijgt ie wel de hele text. Beetje vaag, maar het werkt dan toch.

Acties:
  • 0 Henk 'm!

  • Snow_King
  • Registratie: April 2001
  • Laatst online: 06:07

Snow_King

Konijn is stoer!

Topicstarter
raar,

ik zal er eens naar kijken, bedankt!
Pagina: 1