PHP连接MSSQL实现注册功能

介绍

PHP是一种常用的服务器端编程语言,可以与多种数据库进行交互。MSSQL是一种常用的关系型数据库管理系统,常用于Windows平台上。

连接MSSQL数据库

安装MSSQL驱动

在PHP中连接MSSQL需要使用ODBC扩展或MSSQL扩展。ODBC扩展更加通用,支持多种数据库,但速度较慢。MSSQL扩展只能连接MSSQL数据库,但速度更快。下面以MSSQL扩展为例。

如果还没有安装MSSQL扩展,可以根据PHP版本下载对应的DLL文件,放到PHP的ext目录中,并将其添加到php.ini文件中。

// 下载php_sqlsrv.dll和php_pdo_sqlsrv.dll

// 根据PHP版本选择下载,如PHP7.4选择7.4.x版

// 下载地址:https://docs.microsoft.com/en-us/sql/connect/php/download-drivers-php-sql-server?view=sql-server-ver15

// 将下载的两个DLL文件放到PHP的ext目录中

// 打开php.ini文件

// 找到extension=php_sqlsrv.dll和extension=php_pdo_sqlsrv.dll所在的行

// 如果没有找到,可以在最后一行添加以下两行

extension=php_sqlsrv.dll

extension=php_pdo_sqlsrv.dll

连接数据库

连接MSSQL数据库需要指定数据库服务器名、数据库名、数据库用户名和密码。

<?php

$serverName = "localhost\\SQLEXPRESS"; // 数据库服务器名

$databaseName = "testdb"; // 数据库名

$username = "sa"; // 数据库用户名

$password = "password"; // 数据库密码

$connectionInfo = array(

"UID" => $username,

"PWD" => $password,

"Database" => $databaseName

);

$conn = sqlsrv_connect($serverName, $connectionInfo); // 连接数据库

if (!$conn) {

die("连接失败:" . sqlsrv_errors());

}

echo "连接成功";

?>

实现注册功能

创建用户表

在MSSQL中创建用户表,在其中添加用户名、密码等字段。

CREATE TABLE users (

id INT NOT NULL IDENTITY(1,1) PRIMARY KEY,

username NVARCHAR(50) NOT NULL,

password NVARCHAR(50) NOT NULL,

email NVARCHAR(50) NOT NULL

);

提交注册信息

在Web应用程序中,可以通过表单提交用户注册信息。在PHP中,可以通过$_POST变量获取表单提交的数据。

<form action="register.php" method="POST">

用户名:

<input type="text" name="username"><br>

密码:

<input type="password" name="password"><br>

邮箱:

<input type="text" name="email"><br>

<input type="submit" value="注册">

</form>

保存注册信息

在PHP中,通过sqlsrv_query函数执行SQL语句。可以使用?参数化的方式将值传入SQL语句中,避免SQL注入攻击。

$username = $_POST['username'];

$password = $_POST['password'];

$email = $_POST['email'];

$sql = "INSERT INTO users (username, password, email) VALUES (?, ?, ?)";

$params = array($username, $password, $email);

$stmt = sqlsrv_query($conn, $sql, $params);

if (!$stmt) {

die("插入数据失败:" . sqlsrv_errors());

}

echo "注册成功";

完整代码

最终,可以将上述代码整合为一个PHP文件,完成注册功能。

<?php

$serverName = "localhost\\SQLEXPRESS"; // 数据库服务器名

$databaseName = "testdb"; // 数据库名

$username = "sa"; // 数据库用户名

$password = "password"; // 数据库密码

$connectionInfo = array(

"UID" => $username,

"PWD" => $password,

"Database" => $databaseName

);

$conn = sqlsrv_connect($serverName, $connectionInfo); // 连接数据库

if (!$conn) {

die("连接失败:" . sqlsrv_errors());

}

if ($_SERVER['REQUEST_METHOD'] == 'POST') {

$username = $_POST['username'];

$password = $_POST['password'];

$email = $_POST['email'];

$sql = "INSERT INTO users (username, password, email) VALUES (?, ?, ?)";

$params = array($username, $password, $email);

$stmt = sqlsrv_query($conn, $sql, $params);

if (!$stmt) {

die("插入数据失败:" . sqlsrv_errors());

}

echo "注册成功";

}

?>

<form action="register.php" method="POST">

用户名:

<input type="text" name="username"><br>

密码:

<input type="password" name="password"><br>

邮箱:

<input type="text" name="email"><br>

<input type="submit" value="注册">

</form>

免责声明:本文来自互联网,本站所有信息(包括但不限于文字、视频、音频、数据及图表),不保证该信息的准确性、真实性、完整性、有效性、及时性、原创性等,版权归属于原作者,如无意侵犯媒体或个人知识产权,请来电或致函告之,本站将在第一时间处理。猿码集站发布此文目的在于促进信息交流,此文观点与本站立场无关,不承担任何责任。

数据库标签