向本地SQL Server插入数据时PHP代码无法运行,浏览器直接显示代码求助
解决PHP代码直接显示&无法向SQL Server插入数据的问题
首先,浏览器直接显示PHP代码这个问题,本质是你的Web服务器没有对PHP文件进行解析,把它当成了普通文本文件输出了。先把这个核心问题解决,才能谈后续的数据库插入操作。
先搞定PHP代码不解析的问题
- 确认本地服务器环境正常运行:如果你用的是XAMPP、WAMP这类集成环境,先确保Apache(或者IIS,如果你用Windows自带服务器)和PHP服务已经启动。比如打开XAMPP控制面板,看Apache的状态是不是Running。
- 检查文件扩展名:你的表单提交目标是
insert.php,这个文件的后缀必须是.php,不能是.html或者.txt——服务器只会解析后缀为.php的文件。 - 用正确的方式访问页面:不能直接双击HTML文件(那样是
file://协议,不走服务器),必须通过本地服务器的URL访问,比如http://localhost/你的项目文件夹/index.html(假设你的HTML表单文件叫index.html)。 - 验证服务器配置(手动搭建环境适用):如果不是用集成环境,要确保Apache的
httpd.conf里已经加载了PHP模块,并且添加了PHP文件的解析规则,比如:
修改配置后记得重启Apache。LoadModule php8_module "path/to/php8apache2_4.dll" AddType application/x-httpd-php .php
然后处理SQL Server数据插入的问题
假设你已经解决了PHP解析的问题,下面给你一个基础的insert.php示例代码,用SQL Server官方的sqlsrv扩展来实现插入(记得先确保你的PHP安装了这个扩展,可以通过phpinfo()查看是否有sqlsrv相关的条目):
<?php // 数据库连接配置 $serverName = "localhost"; // 本地SQL Server地址一般为localhost $dbName = "你的数据库名称"; $dbUser = "数据库用户名"; $dbPwd = "数据库密码"; // 建立连接 $conn = sqlsrv_connect($serverName, [ "Database" => $dbName, "Uid" => $dbUser, "PWD" => $dbPwd ]); // 检查连接是否成功 if ($conn === false) { die("数据库连接失败:" . print_r(sqlsrv_errors(), true)); } // 处理表单提交 if ($_SERVER["REQUEST_METHOD"] === "POST") { // 获取并清理表单数据(可额外添加非空验证) $userName = trim($_POST["username"]); $email = trim($_POST["email"]); // 用参数化查询防止SQL注入,这是必须的安全操作! $insertSql = "INSERT INTO 你的表名 (username, email) VALUES (?, ?)"; $params = [$userName, $email]; $stmt = sqlsrv_query($conn, $insertSql, $params); if ($stmt === false) { die("插入失败:" . print_r(sqlsrv_errors(), true)); } else { echo "数据插入成功!<a href='index.html'>返回表单</a>"; sqlsrv_free_stmt($stmt); } } // 关闭连接 sqlsrv_close($conn); ?>
额外注意事项
- 确保SQL Server服务处于运行状态,且目标数据库、表已创建,字段名和代码里的保持一致。
- 一定要用参数化查询,绝对不要直接把用户输入拼到SQL语句里,避免SQL注入攻击。
- 如果连接失败,先检查用户名密码是否正确,SQL Server的身份验证模式是否设置为混合模式(允许SQL账号登录)。
内容的提问来源于stack exchange,提问作者testsc
相关产品推荐
相关产品推荐

