Reputation: 77
hi am trying to insert records from my form into a table called dbo.[TABLE$Leave Request]. I get this error when i try to submit;
Array ( [0] => Array ( [0] => 42S02
[SQLSTATE] => 42S02
[1] => 208
[code] => 208
[2] => [Microsoft][ODBC Driver 11 for SQL Server][SQL Server]Invalid object name 'dbo.TABLE Request'.
[message] => [Microsoft][ODBC Driver 11 for SQL Server][SQL Server]Invalid object name 'dbo.TABLE Request'. ) )
My code
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "leave")) {
$sql = "INSERT INTO dbo.[TABLE$Leave Request]
(dbo.[TABLE$Leave Request].id,
dbo.[TABLE$Leave Request].emp_ID,
dbo.[TABLE$Leave Request].leave_type,
dbo.[TABLE$Leave Request].date_applied,
dbo.[TABLE$Leave Request].leave_days,
dbo.[TABLE$Leave Request].start_date,
dbo.[TABLE$Leave Request].end_date,
dbo.[TABLE$Leave Request].supervisor,
dbo.[TABLE$Leave Request].leave_reason,
dbo.[TABLE$Leave Request].[year],
dbo.[TABLE$Leave Request].partner,
dbo.[TABLE$Leave Request].phone) VALUES (?,?,?,?,?,?,?,?,?,?,?,?)";
$params = array($_POST[id],
$_POST[empid],
$_POST[leave_type],
$_POST[date_applied],
$_POST[leave_days],
$_POST[start_date],
$_POST[end_date],
$_POST[supervisor],
$_POST[leave_reason],
$_POST[year],
$_POST[partner],
$_POST[phone]);
$ins = sqlsrv_query( $conn, $sql, $params);
if( $ins === false ) {
die( print_r( sqlsrv_errors(), true));
}
}
Upvotes: 0
Views: 63
Reputation: 137034
Double-quoted strings perform variable interpolation in PHP. PHP tries to insert the value of a (presumably nonexistent) variable $Leave
into your string.
Use single quotes instead:
$sql = 'INSERT INTO dbo.[TABLE$Leave Request]
(dbo.[TABLE$Leave Request].id,
...';
Alternatively, escape your $
character with \
, i.e. TABLE\$Leave
.
Upvotes: 3
Reputation: 74068
The error message already says it:
Invalid object name 'dbo.TABLE Request'.
When you compare this to your code
$sql = "INSERT INTO dbo.[TABLE$Leave Request]
you see $Leave
, which is replaced by an empty string, giving TABLE Request
.
Upvotes: 1