shawind 发表于 2009-3-9 13:56:38

PHP中连接MSSQL

因为要写个SF的注册页面。数据库就不能随便选,只能MSSQL了。
打开PHP程序的目录,在php.ini文件里开启支持mssql的扩展

extension=php_mssql.dll

如果没这个dll的话,Google后下载一个放php的扩展目录里。
这样基本就可以的,使用的时候,基本参照mysql的命令来。
非常简单,不过,不记下来,只怕回头又忘了......
测试一下

<?php
$server = "(local)";
$user = "GameSrv";
$password = "luna";
$database = "lunamember";

$res = mssql_connect($server,$user,$password);

if(!$res)
    echo "无法连接MSSQL服务器";

if(!mssql_select_db($database,$res))
    echo "无法打开".$database."数据库";

$exec = "select * from chr_log_info";
$result = mssql_query($exec);
while($rs = mssql_fetch_object($result))
{
    echo "名字:".$rs->id_loginid."
";
    echo "密码:".$rs->id_passwd."
";
    echo "性别:".$rs->id_sexType."
";
    echo "-------------------------
";
}

mssql_close($res);

?>

shawind 发表于 2009-3-12 12:13:48

写完了注册处理后,往xampp1.7里放的时候,出现不能连接数据库的问题。
Google了半天,在delph4php2.0中找了个2000.80.194.0版本的ntwdblib.dll,覆盖到了sytem32和apache/bin中,就可以正常连接SQL2000了。

shawind 发表于 2009-3-13 15:44:14

终于写完了。现炒现卖的PHP,SQL,HTML方面的东西。还有不少BUG,不过管他呢,勉强能用就行。


<?php
    session_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>注册页面</title>
</head>
<body>
<?php
    $_SESSION["Reg_Sucess"] = 0;
    $_SESSION["InputOK"] = 0;
    $_SESSION["Find"] = 0;
   

    if($_POST["NewUserName"] != 0or $_POST["NewUserPwd"] != 0)
    {
      $_SESSION["InputOK"] = 1;
    }
   

    $SQL = mssql_connect("(local)","GameSrv","luna");
    if (!$SQL) echo "无法连接数据库";
      
    if(!mssql_select_db("lunamember")) echo "无法连接lunamember数据库!";
    $RegMemberInfo = mssql_query("select id_loginid from chr_log_info where id_loginid = &#39;". $_POST["NewUserName"] ."&#39;");
    while($MS = mssql_fetch_object($RegMemberInfo))
    {
      if($_POST["NewUserName"] == $MS->id_loginid)
      {
            $_SESSION["Find"] = 1;
      }
    }      
   
    if($_SESSION["Find"] == 0 and $_SESSION["InputOK"] == 1)
    {
      $sql_index = mssql_query("select max(id_idx)mid from chr_log_info");
      $si = mssql_fetch_object($sql_index);
      $i = ($si->mid + 1).",";
      $n = "&#39;".$_POST["NewUserName"]."&#39;,";
      $p = "&#39;".$_POST["NewUserPwd"]."&#39;,";
      $s = "&#39;".$_POST["NewSexType"]."&#39;";
      
      $sql_new_id = mssql_query("insert into chr_log_info(id_idx,propid,id_loginid,id_passwd,id_sextype) values(".$i.$i.$n.$p.$s.");");
      $_SESSION["Reg_Sucess"] = 1;
    }
?>

欢迎注册LunaOnline!
<hr/>
<form action="reg.php" method="post">


    账号:
    <input type="text" name="NewUserName" id="NewUserName"maxlength="16"/>


    密码:
    <input type="password" name="NewUserPwd" id="NewUserPwd"maxlength="16"/>


    性别:
    <select name="NewSexType" id="NewSexType">
            <option value="0">男</option>
            <option value="1">女</option></select>

   
    <input type="submit" name="register" id="register" value="注册" />
   


</form>

<?php
    if($_SESSION["Reg_Sucess"] == 0 and $_SESSION["InputOK"] == 0 and $_SESSION["Find"] == 0)
    {
      echo &#39;<hr/>请检查是否已经正确的输入账号和密码?&#39;;      
    }
   
    if($_SESSION["Reg_Sucess"] == 0 and $_SESSION["InputOK"] == 1 and $_SESSION["Find"] == 1)
    {
      echo &#39;<hr/>注册失败,是不是重名了?&#39;;   
    }

    if($_SESSION["Reg_Sucess"] == 1 and $_SESSION["InputOK"] == 1 and $_SESSION["Find"] == 0)
    {
      echo &#39;<hr/>注册成功!
返回登陆页面&#39;;
    }
?>
<?php
    mssql_close($SQL);
    session_destroy();
?>
</body>
</html>

其实写了四个版本,两个是在Delphi4PHP里面写的,一个面向对象,一个面向过程。结果Crack的D4P总是出错,无法正常使用。于是转Dreamweaver,不用vcl4php,又写了两个......

lw 发表于 2009-3-14 09:30:42

- -不太清楚 是作什么的啊^^?

shawind 发表于 2009-3-14 17:29:34

那个最近在玩LunaOnline的私服,就是这么回事,呵呵~

lw 发表于 2009-3-14 19:06:32

好像因为开SF所以研究数据库的人好多^^

以前也玩过,RO的~^^

shawind 发表于 2009-3-14 19:14:18

呵呵,也不能算是白研究啊。
现在SQL,PHP差不多会了一点点了,又开始啃FLEX,打算写个Web游戏看看

lw 发表于 2009-3-15 18:03:12

Flex 不是ADOBE的那个?
WEB 游戏,以前看过某些,也有做得很好的,白之拌?似乎有专门的制作群呢^^

shawind 发表于 2009-3-16 15:47:39

白之绊 是RMXP的游戏吧.
页: [1]
查看完整版本: PHP中连接MSSQL