weixin_45367495 2022-03-13 16:27 采纳率: 87%
浏览 73
已结题

html如何调用php文件访问SQLServer数据库?

html中的输入框元素:

<input id="passwordfield" type="password" class="DefaultInputStyle">

html中的button元素:

<button class="DefaultButtonStyle" onclick="trylogin(passwordfield.value)" ">登录</button>

html中的script脚本内容:

    <script>
        function trylogin(str) {
            var xmlhttp;
            if (window.XMLHttpRequest) {
                xmlhttp = new XMLHttpRequest
            } else {
                xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
            }
            xmlhttp.onreadystatechange = function() {
                if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
                    document.getElementById("usernamefield").value = "successful";
                }
            }
            xmlhttp.open("GET", "CheckUserNameAndPassword.php", true)
            xmlhttp.send();
        }
    </script>

SQLServer的udl文件属性:
[oledb]
; Everything after this line is an OLE DB initstring
Provider=SQLOLEDB.1;Password=12345;Persist Security Info=True;User ID=sa;Initial Catalog=Diary;Data Source=DESKTOP-LBLP1PJ\SQLEXPRESS01

SQL数据库中的表和内容

img

如果我想要在点击按钮时,将输入框中的文本作为name,查找数据库中匹配的value值并重写进输入框,那么php文件的代码该怎么写呢?

  • 写回答

2条回答 默认 最新

  • CSDN专家-showbo 2022-03-13 16:50
    关注

    php链接读取mssqlserver可以参考以下文章

    下面示例居于odbc链接mssqlserver【注意:在 php.ini 中将 extension=odbc,extension=pdo_odbc前面的分号(;)去掉开启odbc】。不过题主既然是php,干嘛不用标配数据库mysql。

    输入和验证逻辑共用一个页面

    img

    CheckUserNameAndPassword.php

    <meta charset="utf-8">
    <?php
    //同一个页面判断是否提交了数据在做验证
    if(isset($_GET["username"])&&isset($_GET["password"])){
        $username=$_GET["username"];
        $password=$_GET["password"];
        $con = odbc_connect('DRIVER={SQL Server};SERVER=.;DATABASE=test','sa','123');
        //$con = odbc_connect('DRIVER={SQL Server};SERVER=DESKTOP-LBLP1PJ\\SQLEXPRESS01;DATABASE=test','sa','12345');//题主的驱动应该这样
        $query = "select * from mytable where name='${username}' and [value]='${password}'";
    
        $result = odbc_do($con,$query);
        $count=odbc_num_rows($result);
        ob_clean();//清除缓存,就是去掉上面的meta标签内容
        echo $count; //输出账号密码对应的记录数量
        die();//结束输出
    }
    
    ?>
     
    <form id="myform1">
        <div>账户名称</div>
        <input id="usernamefield" name="username" type="text" autocomplete="off" />
        <div>账户密码</div>
        <input id="passwordfield" name="password" type="password" autocomplete="off" />
        <button onclick="Tryloginsystem()" type="button">登录</button>
    </form>
    <script type="text/javascript">
        function Tryloginsystem(str) {
           var xhr=new XMLHttpRequest();
           //get提交需要将数据放到url后,post的话放到xhr.send中发送数据,而且注意设置content-type为application/x-www-form-urlencoded
           xhr.open('get','CheckUserNameAndPassword.php?username='+encodeURIComponent(usernamefield.value)+'&password='+encodeURIComponent(passwordfield.value));
           xhr.onreadystatechange=function(){
               if(4==xhr.readyState){
                    var text=xhr.responseText;
                    if(200==xhr.status)usernamefield.value=text=='0'?'用户名或者密码错误!':'successful';
                    else alert('服务器出错\n'+text);
               }
           };
           xhr.send(null);
        }
    </script>
    
    
    

    img


    有其他问题可以继续交流~

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 3月21日
  • 已采纳回答 3月13日
  • 创建了问题 3月13日

悬赏问题

  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮