Einfügen von Daten in MSSQL-DB mit Hilfe von PHP
Hallo versuche zum einfügen von Daten in MSSQL mit PHP. Ich habe viele Male versucht, herauszufinden, was das problem sein könnte, aber ich nicht scheinen, um es zu finden. Gibt es etwas, das mich nicht Recht zu bekommen oder fehlt?
<?php
//pull form fields into php variables
$no = $_POST['no'];
$name= $_POST['name'];
$date = $_POST['date'];
$leave = $_POST['leave'];
$days= $_POST['days'];
$empno= $_POST['empno'];
//connect to sql
$dbc = mssql_connect('Server-PC','user','password','database')or die('Error connecting to
the SQL Server database.');
//Input into staff database
$query = "INSERT INTO dbo.[CAGD$Leave Plan] ([No_],[Employee No_],[Employee Name],
[Leave Name], [Start Date],[Leave Days],Satus) VALUES
('$no','$name','$leave','$date','days','empno')";
$r esult = mssql_query($query,$dbc)or die('Error querying MSSQL database');
//close to sql
mssql_close($dbc);
echo $name . 'Your submission has been received<br />';
echo 'If you need change this request please contact your HR Manager<br />';
echo 'Thank you <br />';
echo 'HR Manager';
?>
Bekomme ich diese Fehlermeldung:
Warning: mssql_query() [function.mssql-query]: message: Ungültiger Objektname 'dbo.CAGD-Plan".
(severity 16) in C:\xampp\htdocs\CAGD\leave_request.php auf der Linie 110
Warning: mssql_query() [function.mssql-query]: Query failed in C:\xampp\htdocs
\CAGD\leave_request.php on line 110
Error querying MSSQL database
- Sie bekommen eine Fehlermeldung?
- YES Warning: mssql_query() [function.mssql-query]: message: Ungültiger Objektname 'dbo.CAGD-Plan". (severity 16) in C:\xampp\htdocs\CAGD\leave_request.php auf der Linie 110 Warning: mssql_query() [function.mssql-query]: Query failed in C:\xampp\htdocs\CAGD\leave_request.php auf der Linie 110 Fehler MSSQL-Datenbank-Abfragen
- Die variable $verlassen, nicht $Verlassen, also, wenn Sie gehen für so etwas wie CAGD4 Planen, ändern Sie die variable mit lowercase.PHP groß-und Kleinschreibung.
- Wenn Sie können, vermeiden Sie Leerzeichen in Feldnamen, die Sie eigentlich sollten. Ja, Sie können es umgehen, aber es ist so hässlich.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Geben Sie zuerst Ihre Datenbank-Verbindung...
dann Abfrage, wie
Können Sie SQLSRV-Treiber anstelle von MSSQL-Treiber und versuchen Sie dann, diese
Dies ist mehr nützlich, und Sie können hier mehr darüber erfahren:
https://msdn.microsoft.com/en-us/library/cc626305(v=sql.105).aspx
Hmm, es scheint mir, dass du 7 Felder in der Tabelle, aber nur 6 Werte abgegeben - fehlt der Wert für die erste Spalte,
[No_]
.Neben der letzten Spalte
satus
(ich nehme an, es sollte sein, 'status') nicht de[]
Trennzeichen.Die Fehlermeldung sagt dir, dass der name der Tabelle falsch ist.
Und ja die Variablen-Namen sind case-Sensitiv in PHP, es sollte $lassen - am besten verlassen Sie den string und verkettet - so etwas wie
"bla bla".$leave."anything here with spaces or not"
.Soll das eine variable sein?
Wenn dem so ist, dann ist es anscheinend undefiniert in Ihrem code und den generierten query-string enthält
dbo.[CAGD Plan]
, und nicht, was Wert war, soll in dieser variable. Wenn die$
ist buchstäblich in der Tabelle Namen, dann sollte esCAGD\$Leave
, so dass$Leave
nicht behandelt wie eine variable.$
so, dass php nicht behandeln$Leave
als eine variable.