Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

PHP Wert Null an MS-SQL übergeben

Frage Entwicklung PHP

Mitglied: XxxMarcoxxX

XxxMarcoxxX (Level 1) - Jetzt verbinden

16.06.2011 um 17:39 Uhr, 5302 Aufrufe, 4 Kommentare

Hallöchen PHP Freunde

folgendes Problem, ich habe eine Variable die ich in meinem Script auf $var = NULL; setze und dieses in meinen MS-SQL 2008 schreibe.
Nur leider schreibt er nicht das Feld auf "NULL" sondern das Feld ist einfach nur "empty".
Ich habe jetzt mindestens halb google zu diesem Thema durch und finde einfach keinen Ansatz, bin auch davon ausgegangen das man dies in der PHP.ini einstellt, aber pustekuche.

Ich weiss das es in My-SQL geht aber hier ist irgendwie mal wieder der Wurm drin.

Könnte Ihr mir weiterhelfen?


Grüße Marco
Mitglied: Arano
16.06.2011 um 20:32 Uhr
Hallo Freund ...Marco *g*


Habe keinen MSSQL-Server.
Aber ich vermute mal, das du einen kleinen Fehler machst... höhö.... einen der "bei MySQL" zum gleichem Ergebnis führen sollte.

01.
$var = NULL; 
02.
$query = "INSERT INTO `tabelle` (`name`) VALUES (".$var.")"
03.
// $var ist null / leer, also wird in den Query  __nichts__ eingefügt 
04.
$query = "INSERT INTO `tabelle` (`name`) VALUES ()"
05.
// was einen leeren Datensartz erzeugt - oder ehr eine Fehlermeldung ;)
An die entsprechende Stelle im Query darf nicht NULL eingefügt werden sondern NULL - also nicht der Wert NULL, sondern die Zeichenkette NULL
01.
$query = "INSERT INTO `tabelle` (`name`) VALUES (NULL)"
02.
// bzw. 
03.
$query = "INSERT INTO `tabelle` (`name`) VALUES (".(is_null($var)?'NULL':'').")";
So das die Zeichenkette NULL erst von der Datenbank noch als Attribut NULL interpretiert werden kann / muss.


Hoffe ich habe damit helfen können,
schönen Gruß
~Arano
Bitte warten ..
Mitglied: XxxMarcoxxX
17.06.2011 um 09:57 Uhr
Morsche Arano,

ja super Sache, das Funktioniert eindwandfrei, habe doch dann aber noch eine Frage an dich
Falls die var dann doch mal einen Wert hat, trage ich Sie doch nach dem " : " ein oder?


01.
<? 
02.
 
03.
if(isset($var)){ 
04.
$var = 'HateinenWert'
05.
} else { $var = NULL; } 
06.
 
07.
$query = "INSERT INTO `tabelle` (`name`) VALUES (".(is_null($var)?'NULL':'$var').")"
08.
?>
Nur leider hat das nicht hin, der sagt mir ständig die Fehlermeldung:
mssql-query'>function.mssql-query</a>]: message: Ungültige &quot;$var&quot;-Pseudospalte. (severity 15) in....

Grüße Marco
Bitte warten ..
Mitglied: Arano
17.06.2011 um 15:43 Uhr
Hallo Marco

Ja, von Prinzip her war das richtig !
(is_null($var)?'NULL':'$var')
Ist nämlich eine Kurzform vom IF-ELSE in Klammern für das echo
Zitat: PHP-Manual - if
BEDINGUNG ? WENN_WAHR : WENN_FALSCH
So könntest du die Variable auch vorher manipulieren:
01.
$var = isset() ? 'NULL' : $var;
Dein Fehler:
Zeichenketten in einfachen Anführungszeichen werden nicht von PHP geparst, was zufolge hat, das in deinem Query "$var" steht und nicht dessen Wert !
PHP-Manual - echo

Da ist aber noch ein Fehler ;) Denn der Wert im ELSE-Zweig ist ein falscher für den Query !
Du musst nocheinmal Anführungszeichen mitgeben damit die Zeichenkette im Query in Anführungszeichen steht ;)

01.
$query = "INSERT INTO `tabelle` (`name`) VALUES (".(is_null($var)?'NULL':'\''.$var.'\'').")";
Weil der Query so aber etwas schlecht zu lesen ist, greife ich dein Beispiel und meine Erwähnung wieder auf:
01.
<?php 
02.
if(isset($var)) 
03.
    $var = '\''HateinenWert'\''; // zusätzliche Anführungszeichen für den Query, NULL darf keine haben 
04.
else 
05.
    $var = 'NULL'; // in der PHP-Variable noch eine normale Zeichenkette, im Query dann aber ohne anführungszeichen damit es als Attribut erkannt wird 
06.
 
07.
// oder in kurz: 
08.
$var = isset($var) ? '\''.$var.'\'' : 'NULL'
09.
 
10.
$query = "INSERT INTO `tabelle` (`name`) VALUES (".$var.")"
11.
//Ergibt: INSERT INTO `tabelle` (`name`) VALUES ('content'
12.
//Ergibt: INSERT INTO `tabelle` (`name`) VALUES (NULL) 
13.
?>

Schönen Start ins Wochenende
~Arano
Bitte warten ..
Mitglied: XxxMarcoxxX
20.06.2011 um 12:29 Uhr
Guten morgen Arno,

hat wunderbar geklappt, vielen dank für deine exzelente Hilfe..

Grüße Marco
Bitte warten ..
Ähnliche Inhalte
Datenbanken
gelöst MS SQL Abfragen und Formulare in Webseite einbinden (3)

Frage von Machello zum Thema Datenbanken ...

Backup
Backup-Software für IIS und MS SQL (2)

Frage von Ravelux zum Thema Backup ...

Datenbanken
MS SQL - Update Text Feld mit Steuerzeichen (4)

Frage von emeriks zum Thema Datenbanken ...

Windows Server
gelöst Ms sql management studio 2012 Konfigurationsmanagerstartet nicht (3)

Frage von XPFanUwe zum Thema Windows Server ...

Neue Wissensbeiträge
Google Android

Cyanogenmod alternative Downloadquelle

(5)

Tipp von Lochkartenstanzer zum Thema Google Android ...

Batch & Shell

Batch als Dienst bei Systemstart ohne Anmeldung ausführen

(5)

Tipp von tralveller zum Thema Batch & Shell ...

Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Statische Routen mit Shorewall, ISC-DHCP Server konfigurieren für Android Devices (25)

Frage von terminator zum Thema LAN, WAN, Wireless ...

Server
gelöst Wie erkennen, dass nur deutsche IPs Zugang zu einer Website haben? (22)

Frage von Coreknabe zum Thema Server ...

Hardware
16-20 Port POE Switch mit VLAN (19)

Frage von thomasreischer zum Thema Hardware ...

Windows Server
Exchange HyperV Prozessorlast (18)

Frage von theoberlin zum Thema Windows Server ...