EDIT: Erledigt, kann zu!
Hallo,
habe leider nichts gefunden was mit MS SQL Server zu tun hat, nur mit MySQL. Als Datenbank verwende ich eine MS SQL Server 2008 über ODBC mit PHP
Ich möchte gerne eine Datei (zum Beispiel ein JPG) in ein IMAGE-Feld schreiben. Ob das nun sinn macht oder nicht, sei erstmal irrelevant. Bisher gehe ich folgendermaßen vor:
Ich habe in HTML ein input vom Type "file". Beim submitten der form hole ich mir erst mal die infos der datei:
Anhand dieser Infos überprüfe ich erst mal ob sie zu groß ist und ob der Dateityp korrekt ist. Wenn das also alles erfolgreich ist lese ich den Inhalt der Datei aus. Die funktion asc2bin wandelt die Zeichen in binären code (0 und 1) um:
Nun habe ich in $blobdata einen string von 0 und 1. Ich hoffe bis hierhin habe ich alles richtig gemacht. In die Datenbank will ich jetzt diesen string in die IMAGE-Spalte schreiben und in eine andere Spalte den dateinamen (den ich bereits habe). Mit dem Dateinamen gibt das kein Problem, mit dem IMAGE schon. Entweder gibt es einen Fehler 37000 oder es wird nichts in die IMAGE-Spalte eingetragen. (Beim Auslesen speichert er zwar eine Datei mit dem Dateinamen, diese ist allerdings 0kb groß und leer).
Das SQL sieht so aus:
Ich bin jetzt leider überfragt.
Hallo,
habe leider nichts gefunden was mit MS SQL Server zu tun hat, nur mit MySQL. Als Datenbank verwende ich eine MS SQL Server 2008 über ODBC mit PHP
Ich möchte gerne eine Datei (zum Beispiel ein JPG) in ein IMAGE-Feld schreiben. Ob das nun sinn macht oder nicht, sei erstmal irrelevant. Bisher gehe ich folgendermaßen vor:
Ich habe in HTML ein input vom Type "file". Beim submitten der form hole ich mir erst mal die infos der datei:
PHP Code:
$tempname = $_FILES['datei']['tmp_name'];
$name = $_FILES['datei']['name'];
$type = $_FILES['datei']['type'];
$size = $_FILES['datei']['size'];
PHP Code:
$fp = fopen($tempname, "rb");
$blobdata = asc2bin(fread($fp, filesize($tempname)));
fclose($fp);
Das SQL sieht so aus:
PHP Code:
function anfrage_insert3 ($dateiid, $devid, $dateiname, $datei) {
$c = $_SESSION['connection'];
$s = "INSERT INTO DATEI (DATEIID, DEVELOPMENTID, DATEINAME, DATEI) VALUES ($dateiid, $devid, '$dateiname', '$datei')";
send_sql($c, $s);
commit($c);
}
Comment