Top-Themen

Aktuelle Themen (A bis Z)

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, 5459 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
Mit MS-SQL-Trigger ein Wert in eine andere Tabelle übertragen
gelöst Frage von EB-StefanDatenbanken2 Kommentare

Hallo zusammen, ich habe ein kleines Problem. Ich habe 2 Tabellen die 1:n verknüpft sind. Aufträge zu Liefertermine Es ...

Batch & Shell
Wmic abfrage soll autoit den wert übergeben
Frage von ChrisDynamiteBatch & Shell1 Kommentar

hallo! nach gefühlt 3 stunden google bin ich leider keinen schritt weiter. wie erreiche ich es, dass ich in ...

Microsoft Office
Beim Null Wert in der Zelle komplette Zeile nicht drucken
gelöst Frage von wingetMicrosoft Office6 Kommentare

Hallo zusammen, ich suche nach einer Lösung (gerne auch VBA) für folgenes Problem. Beispiel: Wenn z.B.die Zellen D2, D6, ...

Microsoft Office
Kein Wert beim Sortieren, bzw NV wird nicht als NULL angezeigt
Frage von Inge88Microsoft Office

Ein feierabendliches Hallöchen an Alle, langsam steigere ich mich komme aber ständig an meine Grenzen :-) :-( Ich haben ...

Neue Wissensbeiträge
Apple

IOS 11.2.1 stopft HomeKit-Remote-Lücke

Tipp von BassFishFox vor 19 StundenApple

Das Update für iPhone, iPad und Apple TV soll die Fernsteuerung von Smart-Home-Geräten wieder in vollem Umfang ermöglichen. Apple ...

Windows 10

Windows 10 v1709 EN murkst bei den Regionseinstellungen

Tipp von DerWoWusste vor 1 TagWindows 10

Dieser kurze Tipp richtet sich an den kleinen Personenkreis, der Win10 v1709 EN-US frisch installiert und dabei die englische ...

Webbrowser

Kein Ton bei Firefox Quantum über RDP

Tipp von Moddry vor 1 TagWebbrowser

Hallo Kollegen! Hatte das Problem, dass der neue Firefox bei mir auf der Kiste keinen Ton hat, wenn ich ...

Internet

EU-DSGVO: WHOIS soll weniger Informationen liefern

Information von sabines vor 1 TagInternet4 Kommentare

Wegen der europäische Datenschutzgrundverordnung stehen die Prozesse um die Registrierung von Domains auf dem Prüfstand. Sollte die Forderungen umgesetzt ...

Heiß diskutierte Inhalte
Windows Server
RODC kann nicht aus Domäne entfernt werden
Frage von NilsvLehnWindows Server18 Kommentare

HAllo, ich arbeite in einem Universitätsnetzwerk mit 3 Standorten. Die Standorte haben alle ein ESXi Cluster und auf diesen ...

Hardware
Links klick bei Maus funktioniert nicht
gelöst Frage von Pablu23Hardware16 Kommentare

Hallo erstmal. Ich habe ein Problem mit meiner relativ alten maus jedoch denke ich nicht das es an der ...

Netzwerkmanagement
Mehrere Netzwerkadapter in einem PC zu einem Switch zusammenfügen
Frage von prodriveNetzwerkmanagement15 Kommentare

Hallo zusammen Vorweg, ich konnte schon einige IT-Probleme mit Hilfe dieses Forums lösen. Wirklich klasse hier! Doch für das ...

Windows XP
Windows XP Aktivieren geht nicht
Frage von tetikmiroWindows XP13 Kommentare

Hallo Ich habe einen Windows XP mit einen vCenter Converter umgezogen auf eine ESXI. Soweit funktioniert dies auch ohne ...