繁体   English   中英

没有数据使用php插入mssql数据库

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM