Avatar of Joe Danyi
Joe Danyi
 asked on

Row insertion failed. Array

I am trying to insert items from a form into MSSQL via PHP but I am having some trouble, please see my code bellow and see if you can point me in the right direction as to my trouble. And I thank you in advance.
<?php  
$serverName = "Servername"; 
$uid = "423";   
$pwd = "Password";  
$databaseName = "423"; 

$connectionInfo = array( "UID"=>$uid,                            
                         "PWD"=>$pwd,                            
                         "Database"=>$databaseName); 
  
/* Connect using SQL Server Authentication. */  
$conn = sqlsrv_connect( $serverName, $connectionInfo);  
  
// TRY TO CONNECT
$conn = sqlsrv_connect( $serverName, $connectionInfo);  
if( $conn === false )  
{  
     echo "Could not connect.\n";  
     print_r( sqlsrv_errors() );  
}  

// DEFINE OUR VARIABLES
$today = date('c');
$phpgur = $_POST["gur"];
$phpbur = $_POST["bur"];

/* Set parameter values. */
$params = array($phpbur,$phpgur,$today); // 

/* Set up the parameterized query. */  
$tsql = "INSERT INTO 423.tss (bur,gur,un) VALUES (?,?,?,)";  

/* Prepare and execute the query. */  
$stmt = sqlsrv_query($conn, $tsql, $params);  
if( $stmt )  
{  
     echo "Row successfully inserted.\n";  
}  
else  
{  
     echo "Row insertion failed.\n";  
     print_r( sqlsrv_errors() );  
}  


echo "connectionInfo";
var_dump($connectionInfo);

echo "conn";
var_dump($conn);

echo "params";
var_dump($params);

echo "today is $today";

echo "stmt";
var_dump($stmt);

echo "tsql is $tsql";

/* Free statement and connection resources. */ 
sqlsrv_free_stmt($stmt);  

Open in new window



I revive the following error:
Row insertion failed. Array ( [0] => Array ( [0] => 42000 [SQLSTATE] => 42000 [1] => 102 [code] => 102 [2] => [Microsoft][ODBC Driver 11 for SQL Server][SQL Server]Incorrect syntax near '423.'. [message] => [Microsoft][ODBC Driver 11 for SQL Server][SQL Server]Incorrect syntax near '423.'. ) ) connectionInfoarray(3) { ["UID"]=> string(3) "423" ["PWD"]=> string(60) "2daf7bedb637d0c77748462f3a073e0a8d895c2a31a5ac3452ad6675fa1a" ["Database"]=> string(3) "423" } connresource(5) of type (SQL Server Connection) paramsarray(3) { [0]=> string(3) "bur" [1]=> string(3) "gur" [2]=> string(25) "2017-03-07T20:09:54-05:00" } today is 2017-03-07T20:09:54-05:00stmtbool(false) tsql is INSERT INTO 423.tss (bur,gur,un) VALUES (test10,test10,12/12/12)
Warning: sqlsrv_free_stmt() expects parameter 1 to be resource, boolean given in G:\s\wunderlist-api-demo-master\brace\connect4.php on line 63

Open in new window


I am using server 2012 R2,
SQL server 2008 ( I believe)
PHP 5.6 on IIS
Thank you in advance let me know if you need more info.
SQLPHPMicrosoft SQL Server

Avatar of undefined
Last Comment
Julian Hansen

8/22/2022 - Mon
Ray Paseur

Just a "swag" guess, but try omitting the last comma.

Not this:
$tsql = "INSERT INTO 423.tss (bur,gur,un) VALUES (?,?,?,)";  

Instead this:
$tsql = "INSERT INTO 423.tss (bur,gur,un) VALUES (?,?,?)";
Joe Danyi

ASKER
Alas im afraid not :(
 
i did make that change to the script tho.

Any further input appreciated
Joe Danyi

ASKER
http://stackoverflow.com/questions/24512094/connecting-php-to-ms-sql-server
it could be because of use of "thing" instead of using 'thing' maybe?
 "to avoid escapingg you could also use single quotes ' instead of double quotes ". Then PHP does not resolve variables within the string. (see this question)"
All of life is about relationships, and EE has made a viirtual community a real community. It lifts everyone's boat
William Peck
ASKER CERTIFIED SOLUTION
Ray Paseur

Log in or sign up to see answer
Become an EE member today7-DAY FREE TRIAL
Members can start a 7-Day Free trial then enjoy unlimited access to the platform
Sign up - Free for 7 days
or
Learn why we charge membership fees
We get it - no one likes a content blocker. Take one extra minute and find out why we block content.
Not exactly the question you had in mind?
Sign up for an EE membership and get your own personalized solution. With an EE membership, you can ask unlimited troubleshooting, research, or opinion questions.
ask a question
SOLUTION
Log in to continue reading
Log In
Sign up - Free for 7 days
Get an unlimited membership to EE for less than $4 a week.
Unlimited question asking, solutions, articles and more.