介绍
在Web开发中,MSSQL数据库被广泛使用,尤其是在Microsoft技术栈中。在PHP中操作MSSQL数据库也是一件非常常见的事情。本文将实践一些PHP操作MSSQL数据库的函数。
连接数据库
要使用PHP操作MSSQL数据库,首先需要建立连接。可以使用mssql_connect()函数来建立与MSSQL数据库的连接。以下是此函数的语法:
resource mssql_connect ([ string $servername [, string $username [, string $password [, bool $new_link = false ]]]] )
该函数返回一个MSSQL连接标识符,如果连接失败,则返回false。参数servername是要连接的MSSQL服务器的名称(或IP地址),username是登录数据库的用户名,password是登录数据库的密码。如果new_link参数设置为true,则会创建一个新的连接,而不是复用现有的连接。
建立连接
以下是建立到MSSQL服务器的连接的示例:
$serverName = "localhost"; //服务器名称
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo );
在此示例中,我们首先指定MSSQL服务器的名称。然后,我们设置一个$connectionInfo数组,其中包含要连接的数据库的名称,以及登录到数据库需要使用的用户名和密码。最后,我们调用sqlsrv_connect()函数来建立与MSSQL服务器的连接。如果连接成功,则该函数返回一个MSSQL连接资源。
关闭连接
在完成与MSSQL服务器的通信之后,最好关闭与服务器的连接。可以使用mssql_close()函数来关闭连接。以下是该函数的语法:
bool mssql_close ([ resource $link_identifier ] )
该函数需要一个MSSQL连接标识符作为参数。如果未指定连接,则默认为当前连接。返回true表示连接已成功关闭,false表示关闭失败。
执行查询
在与MSSQL数据库建立连接之后,可以使用mssql_query()函数来执行查询。以下是该函数的语法:
resource mssql_query ( string $query [, resource $link_identifier ] )
该函数将执行由参数query指定的查询。如果未指定连接,则默认为当前连接。如果查询成功,则该函数返回查询结果资源。否则返回false。
执行SELECT查询
以下是执行SELECT查询的示例:
$sql="SELECT * FROM tableName";
$result=mssql_query($sql);
while($row=mssql_fetch_assoc($result)){
echo "id:".$row['id']."
";
echo "name:".$row['name']."
";
echo "age:".$row['age']."
";
}
在此示例中,我们首先指定SELECT查询的语句,并将其存储在字符串变量$sql中。然后,我们使用mssql_query()函数来执行查询,并将结果存储在名为$result的变量中。接下来,我们使用while循环来遍历结果集,并将每个记录的id,name和age属性输出到屏幕上。
执行INSERT查询
以下是执行INSERT查询的示例:
$sql="INSERT INTO tableName (name,age) VALUES ('tom',30)";
$mssql_query($sql);
在此示例中,我们首先指定INSERT查询的语句,并将其存储在字符串变量$sql中。然后,我们使用mssql_query()函数来执行查询,并将结果存储在名为$result的变量中。
执行UPDATE查询
以下是执行UPDATE查询的示例:
$sql="UPDATE tableName SET age=25 WHERE name='tom'";
$mssql_query($sql);
在此示例中,我们首先指定UPDATE查询的语句,并将其存储在字符串变量$sql中。然后,我们使用mssql_query()函数来执行查询,并将结果存储在名为$result的变量中。
执行DELETE查询
以下是执行DELETE查询的示例:
$sql="DELETE FROM tableName WHERE name='tom'";
$mssql_query($sql);
在此示例中,我们首先指定DELETE查询的语句,并将其存储在字符串变量$sql中。然后,我们使用mssql_query()函数来执行查询,并将结果存储在名为$result的变量中。
处理查询结果
在执行查询后,可以使用mssql_fetch_array(),mssql_fetch_assoc()或mssql_fetch_object()函数来读取查询结果。以下是使用这些函数的示例:
使用mssql_fetch_array()
以下是使用mssql_fetch_array()函数的示例:
$result=mssql_query("SELECT * FROM tableName");
while($row=mssql_fetch_array($result)){
echo "id:".$row[0]."
";
echo "name:".$row[1]."
";
echo "age:".$row[2]."
";
}
在此示例中,我们使用mssql_fetch_array()函数来读取结果集中的每一行。该函数返回一个数组,其中包含结果集中的当前行。在此示例中,我们使用while循环遍历结果集,并将每个记录的id,name和age属性输出到屏幕上。
使用mssql_fetch_assoc()
以下是使用mssql_fetch_assoc()函数的示例:
$result=mssql_query("SELECT * FROM tableName");
while($row=mssql_fetch_assoc($result)){
echo "id:".$row['id']."
";
echo "name:".$row['name']."
";
echo "age:".$row['age']."
";
}
与mssql_fetch_array()不同,mssql_fetch_assoc()返回一个关联数组,其中包含结果集中当前行的列名和值。在此示例中,我们使用while循环来遍历结果集,并将每个记录的id,name和age属性输出到屏幕上。
使用mssql_fetch_object()
以下是使用mssql_fetch_object()函数的示例:
$result=mssql_query("SELECT * FROM tableName");
while($row=mssql_fetch_object($result)){
echo "id:".$row->id."
";
echo "name:".$row->name."
";
echo "age:".$row->age."
";
}
与mssql_fetch_array()和mssql_fetch_assoc()不同,mssql_fetch_object()返回一个对象,其中包含结果集中当前行的属性。在此示例中,我们使用while循环来遍历结果集,并将每个记录的id,name和age属性输出到屏幕上。
异常处理
在执行查询时,可能会发生错误,比如语法错误或连接问题。为了防止这些错误导致整个应用程序崩溃,可以使用try/catch块来捕获并处理异常。以下是一个示例:
$serverName = "localhost"; //服务器名称
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password");
try{
$conn = sqlsrv_connect( $serverName, $connectionInfo );
if(!$conn){
throw new Exception("连接失败");
}
}catch(Exception $e){
echo 'Message: ' .$e->getMessage();
}
在此示例中,我们首先尝试使用mssql_connect()函数来建立与MSSQL服务器的连接。如果连接失败,则会抛出一个异常,并使用catch块来捕获并处理该异常。在此示例中,我们定义了一个名为$e的变量,其类型为Exception。我们可以使用该变量来访问异常的属性和方法。在此示例中,我们使用getMessage()方法来获取异常消息并将其输出到屏幕上。
总结
在本文中,我们介绍了一些在PHP中操作MSSQL数据库的函数。我们了解了如何建立与MSSQL服务器的连接,如何执行SELECT、INSERT、UPDATE和DELETE查询,如何处理查询结果,并如何处理异常。这些函数是在开发高性能Web应用程序时必不可少的。