[英]No data inserted into mssql database using php
我想将使用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的第一天
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/zh/function.sqlsrv-query.php
此代码后:
$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.
这种方法对我来说总是会产生结果的。
最好的祝福!
$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 ( )
代码行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.