Vinzenz Mai: Insert Into in SQL-Datenbank schlägt fehl (base64/utf-8)

Beitrag lesen

Hallo,

$text = "VGhpcyBpcyBhbiBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBEZWxpdmVyeSBTdGF0dXMgTm90aWZpY2F0aW9uLiAAIABEZWxpdmVyeSB0byB0aGUgZm9sbG93aW5nIHJlY2lwaWVudHMgZmFpbGVkLiAAIAAgICAgICAgdGVzdHRlc3R0QHRlc3Rlc3QuY28gACAAIAAgAA0KDQo=";
$Text2 = base64_decode($text);

try {
    $dbh = new PDO('mssql:host=NB_SQLSRV;dbname=sqltest', "sqltest", "sqltest");
    $dbh->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING );
    $stmt = $dbh->prepare("insert into dbo.test2 (inhalt) values (:inhalt)");

Welchen Datentyp hat Deine Spalte inhalt?

$stmt->bindParam(':inhalt', $name);

Binde an $Text2

und entferne die folgende Zeile

$name = $dbh->quote($Text2);

Da Du Prepared Statements verwendest, darfst Du nicht mehr quoten, das macht Dir Deine Daten kaputt.

if ( !$stmt->execute() ) {
echo "statement nicht ausgeführt";

[...]

  
  
Freundliche Grüße  
  
Vinzenz