1. 论坛系统升级为Xenforo,欢迎大家测试!
    排除公告

大家帮忙看下!PHP连接MSSQL受阻!

本帖由 xledoo2006-05-01 发布。版面名称:后端开发

  1. xledoo

    xledoo New Member

    注册:
    2005-11-15
    帖子:
    109
    赞:
    0
    先申明一下~小弟今天刚学PHP,属菜菜菜小鸟,看了别骂,希望大家帮忙!

    目的:通过PHP连接MSSQL,并能插入(用户注册),查询(用户列表)!
    方法:1。直接连接MSSQL。 2。通过文件ODBC数据源!

    实际操作受阻:
    方法1:
    直接连接MSSQL,设置了常用变量以后可以正常连接数据库了!并能查询!代码如下:
    代码:
    <?php
    require_once 'config.inc.php';   //引用变量
    
    $connect = @mssql_connect($Server,$User,$Pass) or die("不能成功连接 $Server 服务器,请检查sa帐号密码是否填写正确"); 
    $db = @mssql_select_db($test, $connect) or die("不能连接选择的 $test 数据库,请填写正确的test数据库名称"); 
    $query = "SELECT name From users";    //从users表中查询name
    $result = mssql_query($query);
    while($row = mssql_fetch_array($result)) 
    { 
    echo "<li>" . $row["name"] . "</li>";   //列出name
    } 
    
    这样就算简单的列出用户了!但小弟不管用什么方法都不能注册!数据插入不了!
    下面是reg.php页面的code~麻烦大家给看看!
    代码:
    require_once 'config.inc.php';  //引用
    $connect = @mssql_connect($Server,$User,$Pass) or die("不能成功连接服务器,请检查sa帐号密码是否填写正确"); 
    mssql_select_db($test, $connect) or die("不能连接选择数据库,请填写正确数据库名称"); 
     
    
    $login_id     =$_POST['name'];//这是传递~!没错吧?
    $d_email     =$_POST['email'];
    $passwd     =$_POST['passwd'];
    
    if($action == "reg")
    {
        $db = @mssql_select_db($test, $connect) or die("不能连接选择的数据库,请填写正确的数据库名称");
        $query = $db->query("INSERT INTO users(name,email,passwd) values ('".$name."','".$email."','".$passwd."')");//插入有问题吗?
        $Result = mssql_query($query,$db); //这里搞不懂,用$connect效果也一样!
    	if($Result)  //如果插入,显示“添加成功”
    	{
    		echo '添加成功';
    	}
    }
    else
    { 
    echo "添加失败","<br>";
    }
    
    
    echo "$name","<br>","$email","<br>","$passwd";    //事实证明传递没有问题,因为“添加失败”后填写的资料都能显示!
    
    mssql_close();
    ?>
    
    我写了个htm,FORM的提交地址是“reg.php?action=reg" 这里应该没有错!因为填写的资料都传递到reg.php了!
    大家帮我看看啊!
     
    #1 xledoo, 2006-05-01
    最后编辑: 2006-05-01
  2. 红杏

    红杏 New Member

    注册:
    2005-09-05
    帖子:
    417
    赞:
    1
  3. xledoo

    xledoo New Member

    注册:
    2005-11-15
    帖子:
    109
    赞:
    0
    方法2
    PHP连接ODBC
    首先我建立的ODBC文件DNS
    打开ODBCAC32 选择”文件DNS“---SQL Server ---ID和NT验证---建立了"test.dns”文件
    路径为C:\Program Files\Common Files\ODBC\Data Sources\test.dns 测试连接成功!

    然后是PHPcode:
    代码:
    // 这里的$dns是指的我建立的test这个名称吗?
    $connection = odbc_connect( $dns, $user, $pass ) or die("不能成功连接服务器");
    
    通过这种方法无法连接,而且奇怪的是错误显示 "用户 IUSR_* 登陆失败“,IUSR_*不是系统来宾帐号吗?SA和密码都没有用!不知道为什么!
    然后我修改了 IUSR_* 帐号的密码!并修改了MSSQLSERVER服务的启动帐号为 IUSR_* ,这样就能连接了~可用的同样不是SA帐号,而是IUSR_*帐号!

    请高手解答一下!拜托了!指条明路吧!:lovely:
     
  4. 小叶

    小叶 New Member

    注册:
    2005-09-04
    帖子:
    17,941
    赞:
    33
    PHP:
    $query $db->query("INSERT INTO users(name,email,passwd) values ('".$name."','".$email."','".$passwd."')");//插入有问题吗?
    如果连接正常,别的问题,我是看不出,
    不过有query() 函数?
     
  5. xledoo

    xledoo New Member

    注册:
    2005-11-15
    帖子:
    109
    赞:
    0
    谢谢小叶~!
    再帮忙看一下下面这段对不?

    代码:
    if($action == "reg")
    {
        $query = "insert into users(name,email,passwd) values ('".$name."','".$email."','".$passwd."')";
        $result = mssql_query( $query,$connect ); 
    我初学,没看出什么问题!但同样不行,还是“添加失败”传递OK!:ft: