我想使用php将表单中的数据插入到mssql 2012中。
上图显示我安装了php的驱动程序以使用mssql,并在测试连接后成功。
以下是为插入而编写的脚本:
$serverName = "SUPERMAN";
$connectionInfo = array('Database'=>'xikwambene', "UID"=>"develop", "PWD"=>"develop");
$conn = sqlsrv_connect($serverName, $connectionInfo);
if($conn) {
echo "Connection established.<br />";
}else {
echo "Connection could not be established.<br />";
die(print_r(sqlsrv_errors(), true));
}
if(empty($_POST) === false && empty($errors)=== true)
{
$id = $_POST['id'];
$name = $_POST['name'];
$query = "INSERT INTO dbo.test (id,name)
VALUES ('$id','$name')GO";
$result = sqlsrv_prepare($conn,$query)or die('Error querying MSSQL database');
sqlsrv_execute($result);
//redirect
header('Location: Address_insert.php');
exit();
}
?>
现在问题是没有任何内容被插入到数据库中,并且它成功地重定向到
Address_insert.php
请协助。它是我第一天使用php和mssql
答案 0 :(得分:1)
if(empty($_POST) === false && empty($errors)=== true)
{
$id = $_POST['id'];
$name = $_POST['name'];
print_r($_POST);
$query = "INSERT INTO dbo.test (id,name)
VALUES (?,?)";
$params = array($id, $name);
$stmt = sqlsrv_query( $conn, $query, $params);
if( $stmt === false ) {
die( print_r( sqlsrv_errors(), true));
}
答案基于以下信息:http://www.php.net/manual/en/function.sqlsrv-query.php
答案 1 :(得分:0)
在此代码之后:
$id = $_POST['id'];
$name = $_POST['name'];
添加:
$id = $_POST['id'];
$name = $_POST['name'];
print_r($_POST)
查看脚本是否收到通过$ _POST发送的php变量并注释:
//header('Location: Address_insert.php'); so you can see the print.
这种方法对我来说总能给出结果。
祝你好运!
答案 2 :(得分:0)
$query = "INSERT INTO dbo.test (id,name)
VALUES ('$id','$name')GO";
$result = sqlsrv_prepare($conn,$query)or die('Error querying MSSQL database');
此处,$query
与预备语句不兼容。您没有在预准备语句中为查询分配参数,而是使用?
等占位符。如果您希望使用准备好的语句,那么您是以错误的方式进行的。如果您希望使用常规查询,则需要删除sqlsrv_prepare ( )
代码行。