使用pdo通过PhP在表(mssql服务器)中插入值

时间:2022-09-25 16:09:21

I could not insert values in table (MSSQL) by using pdo php. I got message that connection is established but query does not work. I have never used MSSQL server I am not sure is this query good.

我无法使用pdo php在表(MSSQL)中插入值。我收到消息说连接已建立,但查询不起作用。我从来没有使用过MSSQL服务器我不确定这个查询是否合适。

$database = "db";
$server = "xxx\SQLEXPRESS";
$conn = array( "Database"=>"db", "UID"=>"user", "PWD"=>"xxx" , "CharacterSet" => "UTF-8");
if( $conn ) {
     echo "connection established";
}else{
     echo "Connection could not be established.";
     die( print_r( sqlsrv_errors(), true));
 }

 // insert values into table, 
 // variables are defined above didnt write them here

$query = $conn->prepare("INSERT INTO dbo.FKNarudzbaKupacaStavke(IdFirma, VrstaDokumenta, BrojDokumenta, BrojDokumentaKroz, 
                        DatumDokumenta, IdKupac, VrstaCijene, NacinPlacanja, DatumZadnjeAkcije, Status, StatusArhive, StatusIzmjene, 
                        StatusStampe, VrstaFakture) VALUES(:IdFirma, :VrstaDokumenta, :BrojDokumenta, :BrojDokumentaKroz, :DatumDokumenta, :IdKupac, :VrstaCijene, :NacinPlacanja, 
                        :DatumZadnjeAkcije, :Status, :StatusArhive, :StatusIzmjene, :StatusStampe, :VrstaFakture)");

    $query->bindParam(':IdFirma',$IdFirma);
    $query->bindParam(':VrstaDokumenta',$VrstaDokumenta);
    $query->bindParam(':BrojDokumenta',$BrojDokumenta);
    $query->bindParam(':BrojDokumentaKroz',$BrojDokumentaKroz);
    $query->bindParam(':DatumDokumenta',$DatumDokumenta);
    $query->bindParam(':IdKupac',$IdKupac);
    $query->bindParam(':VrstaCijene',$VrstaCijene);
    $query->bindParam(':NacinPlacanja',$NacinPlacanja);
    $query->bindParam(':DatumZadnjeAkcije',$DatumZadnjeAkcije);
    $query->bindParam(':Status',$Status);
    $query->bindParam(':StatusArhive',$StatusArhive);
    $query->bindParam(':StatusIzmjene',$StatusIzmjene);
    $query->bindParam(':StatusStampe',$StatusStampe);
    $query->bindParam(':VrstaFakture',$VrstaFakture);
    $query->execute();

I got this error :

我收到了这个错误:

Fatal error: Call to a member function prepare() on a non-object..

致命错误:在非对象上调用成员函数prepare()。

Any help or advice is appreciated!

任何帮助或建议表示赞赏!

2 个解决方案

#1


1  

The way you've written it, $conn isn't a connection, it's just an array.

你编写它的方式,$ conn不是连接,它只是一个数组。

Try this to connect to the database:

试试这个连接到数据库:

$hostname = 'xxx\SQLEXPRESS';
$username = 'user';
$password = 'xxx';
$dbname   = 'db';    
$conntype = 'mysql'; //or dblib or mssql

try {
    $conn = new PDO("$conntype:host=$hostname;dbname=$dbname", $username, $password);
}

catch( PDOException $e ) {
    echo( $e->getMessage() );
}

#2


0  

You are actually not establishing the connection there, please change your $conn variable as show below

您实际上没有在那里建立连接,请更改您的$ conn变量,如下所示

$conn = new PDO("mssql:host=".$server.";dbname=db", "user", "xxx");

#1


1  

The way you've written it, $conn isn't a connection, it's just an array.

你编写它的方式,$ conn不是连接,它只是一个数组。

Try this to connect to the database:

试试这个连接到数据库:

$hostname = 'xxx\SQLEXPRESS';
$username = 'user';
$password = 'xxx';
$dbname   = 'db';    
$conntype = 'mysql'; //or dblib or mssql

try {
    $conn = new PDO("$conntype:host=$hostname;dbname=$dbname", $username, $password);
}

catch( PDOException $e ) {
    echo( $e->getMessage() );
}

#2


0  

You are actually not establishing the connection there, please change your $conn variable as show below

您实际上没有在那里建立连接,请更改您的$ conn变量,如下所示

$conn = new PDO("mssql:host=".$server.";dbname=db", "user", "xxx");