2017-02-24 61 views
-3

我有一个PHP脚本,试图INSERT表单数据到MSSQL数据库。当我运行脚本时,脚本成功运行,但INSERT似乎没有发布数据。下面是相关代码:PHP的MSSQL插入运行,但没有插入数据

<?php 
//collect data from form 
$username = $_POST['username']; 
$firstname = $_POST['firstname']; 
$lastname = $_POST['lastname']; 
$address = $_POST['address']; 
$city  = $_POST['city']; 
$state  = $_POST['state']; 
$zip  = $_POST['zip']; 
$telephone = $_POST['telephone']; 
$email  = $_POST['email']; 
$password = $_POST['password']; 

$serverName  = "192.168.1.1"; //serverName\instanceName 
$connectionInfo = array("Database"=>"mydatabase", "UID"=>"username", "PWD"=>"password"); 
$conn   = sqlsrv_connect($serverName, $connectionInfo); 

if($conn) { 
    $sql = "INSERT INTO Member_Details (FirstName,LastName,Address,City,State,Zip_Code,Telephone,Email,User_Name,Password,Is_Validated) VALUES (?,?,?,?,?,?,?,?,?,?,?)"; 
    $params = array($firstname,$lastname,$address,$city,$state,$zip,$telephone,$email,username,$password,0); 
    $stmt = sqlsrv_query($conn, $sql, $params); 
    echo "You were successfully registered for user name " . $username; 
}else { 
    echo "Something went wrong"; 
} 
?> 

我已经证实,表单数据正在通过在脚本的运行通过邮件顺利通过。

任何建议,将不胜感激! Mike

+1

不是你目前的问题,而是你的密码应该复述。检查http://php.net/manual/en/function.sqlsrv-errors.php是否有错误。 – chris85

+0

'$ params'数组中的'username'缺少'$'。这只是你的问题在这里的错字,或者是你的实际代码吗? –

+0

另外,如果无法连接,则检查'$ conn'和“出错了”,但在此之后,您的代码假定查询将成功执行。你应该验证它不返回false,如果有,请检查错误,如下所示:http://php.net/manual/en/function.sqlsrv-errors.php#refsect1-function.sqlsrv-错误 - 例子 –

回答

0

据我记得,你必须预先设定dbo。 (或任何表的所有者)的表名称。

insert into dbo.tablename (cols) values (vals)