2017-05-12 4 views
0

Ich habe Probleme mit PHP und Oracle-Datenbank.Nummer in Tabelle einfügen werden seltsame Zahl in Oracle

Wenn ich eine Nummer in Tabelle aus PHP einfügen, wird die Nummer in der Tabelle seltsame Zahl. Zum Beispiel, wenn ich Abfrage von PHP ausführen, um die Nummer '1' in die Tabelle einzufügen, speichert es nicht die Nummer '1', aber es speichert auf eine andere Nummer wie '4294967296'. Wenn ich Nummer '10' einfüge, wird '4294967306' und so weiter. Der Datentyp ist NUMBER (10,0).

oracle table

Es gibt kein Problem, wenn ich in einer anderen Datenbank wie MySQL mit der gleichen Tabellenstruktur ändern. Wenn ich '1' einfüge, wird auch '1' gespeichert. Es gibt auch kein Problem, nachdem ich das Programm auf Ubuntu Server hochgeladen habe. Oracle speichert die gleiche Nummer von PHP.

Ich entwickle das PHP-Programm mit Laravel Framework in meinem Windows Laptop mit Laragon.

Ich habe keine Ahnung, was das Problem ist. Ist es PHP, mein Laptop, Laravel, Laragon oder das Oracle?

Vielen Dank für Ihre Hilfe und Antwort.

+1

Können Sie uns Ihren PHP-Code zeigen? Wie du es einfügst? – JSapkota

+0

Ich benutze eloquente Laravel. Mein Code: '$ user = neuer Benutzer; $ user-> id = 1; $ benutzer-> name = 'lolol'; $ user-> Benutzername = 'lolol'; $ user-> active_directory = 0; $ user-> save(); ' –

+0

Ich finde nur heraus, dass es kein Problem gibt, wenn ich Rohcode einfüge. 'DB :: insert ('Einfügen in Benutzer (ID, Benutzername, Name, E-Mail, Active Directory, Domäne) Werte (?,?,?,?,?,?)', [10, 'Dayle', 'Dayle' , 'Tagle', '0', 'esdm']); '. Aber immer noch, wenn ich '$ user-> save()' es funktioniert nicht. –

Antwort

0

Ich verwende Mutator, um das Attribut in eine Zeichenfolge zu konvertieren. Weil, es funktioniert, wenn ich Zeichenfolge ('0') in die Tabelle anstelle von Ganzzahl (0) einfügen. Unten ist der Mutator im Benutzermodell:

//other User model methods.... 
    public function setActiveDirectoryAttribute($attrValue){ 
     $this->attributes['active_directory'] = (string) $attrValue; 
    }