PHP和SQL SERVER 2012为什么会出现这种情况?


PHP & SQL SERVER 2012 Why is this occuring?

$sql = "INSERT INTO newuserformtable (First Name, Last Name, Title) VALUES ('Alex', 'Picone', 'CEO')";
$stmt = sqlsrv_query( $conn, $sql, $params);
$params = array(1, "some data");
if( $stmt === false ) {
 die( print_r( sqlsrv_errors(), true));
}

这段代码给了我这个错误

"Array ( [0] => Array ( [0] => 42000 [SQLSTATE] => 42000 [1] => 102 [code] => 102 [2] => 
[Microsoft][ODBC Driver 11 for SQL Server][SQL Server]Incorrect syntax near 'Name'.
 [message] => [Microsoft][ODBC Driver 11 for SQL Server][SQL Server]Incorrect syntax near 'Name'. ) ) "

您需要像这样插入数据

INSERT INTO newuserformtable ([First Name], [Last Name], [Title]) VALUES ('Alex', 'Picone', 'CEO')

如果要在列中加入空格,上面是插入查询的语法。

在列名中添加引号

$sql = "INSERT INTO newuserformtable ('First Name', 'Last Name', 'Title') VALUES      ('Alex', 'Picone', 'CEO')";
$stmt = sqlsrv_query( $conn, $sql, $params);
$params = array(1, "some data");
if( $stmt === false ) {
 die( print_r( sqlsrv_errors(), true));
}

我觉得你应该用

$sql = "INSERT INTO newuserformtable (`First Name`, `Last Name`, `Title`) VALUES ('Alex', 'Picone', 'CEO')";