Announcement

Collapse
No announcement yet.

SQLSRV und Sonderzeichen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • SQLSRV und Sonderzeichen

    Hi,

    ich habe das Problem, dass Sonderzeichen wie ä ö und ü beim absetzen eines SQL Insert statements nicht korrekt übertragen werden.

    ich benutze den Befehl sqlsrv_query:
    Code:
    sqlsrv_query($this->connection, $sql, array(), array( "Scrollable" => SQLSRV_CURSOR_KEYSET ));
    der inhalt von $sql ist:
    Code:
    INSERT INTO dbo.TaskNote (TaskNoteId, NoteText, WOID, TaskNoteTypeId, TaskNoteCategoryId, IsPrivateFlag, CreateDate, CreatedBy, ModifiedDate, ModifiedBy) VALUES (55264, 'ä ö ü', 38780, 0, null, 0, GetUTCDate(), '', GetUTCDate(), '')
    Es geht also um das Feld "NoteText" dieses ist auf der Datenbank mit dem typ "Text" hinterlegt.


    Setze ich dieses Statement z.b. im SQL Management Studio ab werden die Sonderzeichen ä ö und ü auch korrekt eingetragen.

    Datenbankserver ist ein MS-SQL 2005 Server


    ich hoffe jemand kann mir hier weiterhelfen?

    Grüße,
    S4lz

  • #2
    Verwende parametrisierte Abfragen. Dann klappts auch mit Sonderzeichen/Unicode:

    Code:
    $stmt = $dbh->prepare("INSERT INTO REGISTRY (name, value) VALUES (:name, :value)");
    $stmt->bindParam('name', $name);
    $stmt->bindParam('value', $value);

    Comment


    • #3
      jap, funktioniert so, danke!

      Hier noch der code den ich jetzt habe:
      Code:
      $params = array( array( $_POST['inputTask'], null, SQLSRV_PHPTYPE_STRING("UTF-8"), SQLSRV_SQLTYPE_TEXT ) );
      Code:
      $result = sqlsrv_query($this->connection, $sql, $params, array( "Scrollable" => SQLSRV_CURSOR_KEYSET ));

      Comment

      Working...
      X