php Call to undefined function mssql_connect()

 更新时间:2016年11月25日 16:39  点击:2197

现在想连接MSSQL2000,把MSSQL数据导入到MYSQL,发现链接不上MSSQL,
提示 Call to undefined function mssql_connect()

已做步骤:
1:php.ini
extension = php_mssql.dll前面分号去掉了
2:
把php_mssql.dll复制到了ext目录下,ext目录是extension_dir目录,php_mssql.dll在PHP5里没找到,是从以前的PHP4里复制过来的,不知道可有版本问题,

3:修改了吧php_mssql.dll复制到了system32目录下了,也复制到了windows目录下了

解析方法

1:php.ini
extension = php_mssql.dll前面分号去掉了
正确,必须要做
2:
把php_mssql.dll复制到了ext目录下,ext目录是extension_dir目录,php_mssql.dll在PHP5里没找到,是从以前的PHP4里复制过来的,不知道可有版本问题,
应该是可以的
3:修改了吧php_mssql.dll复制到了system32目录下了,也复制到了windows目录下了
不需要这样,做了也无妨

关键的一步没做!
将 ntwdblib.dll 置于系统的搜索路径中

将Sql Server 2000 升级至SP4, 否则php能过mssql_connect是连接不上sql server的1433端口的

/*
 * Created on 2010-4-25
 *
 * To change the template for this generated file go to
 * Window - Preferences - PHPeclips教程e - PHP - Code Templates
 */
 $conn=mysql_connect('localhost','root','');
 mysql_select_db('member',$conn);


 $sql="select * from user_list";
 $query=mysql_query($sql);
 while($row=mysql_fetch_array($query))
 {
?>
<table width=500 border="0" align="center" cellpadding="5" cellspacing="1" bgcolor="#add3ef">
<tr bgcolor="#eff3ff">
  <td>id:<?=$row[uid]?> 用户:<?=$row[username] ?></td>
  </tr>
  <tr bgColor="#ffffff">
  <td>密码:<?=$row[password]?></td>
  </tr>
<a href="del.php?id=<?=$row[uid]?>">删除</a>
 <? }?>
</table>

数据库结构,把此代码复制到phpmyadmin运行


SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

--
-- 数据库: `member`
--

-- --------------------------------------------------------

--
-- 表的结构 `user_list`
--

CREATE TABLE `user_list` (
  `uid` int(11) NOT NULL auto_increment,
  `m_id` varchar(5) NOT NULL,
  `username` varchar(25) NOT NULL,
  `password` varchar(64) NOT NULL,
  PRIMARY KEY  (`uid`)
) ENGINE=MyISAM  DEFAULT CHARSET=gb2312 AUTO_INCREMENT=11 ;

--
-- 导出表中的数据 `user_list`
--

INSERT INTO `user_list` (`uid`, `m_id`, `username`, `password`) VALUES
(9, '1', 'admin', '75cf565ad38d0f837c43363e402b1a00'),
(10, '2', 'admin2', '75cf565ad38d0f837c43363e402b1a00');

 

数据用逗号隔开。
表单:
<form action="" method="post">
<input name="ID_Dele[]" type="checkbox" id="ID_Dele[]" value="1"/>
<input name="ID_Dele[]" type="checkbox" id="ID_Dele[]" value="2"/>
<input name="ID_Dele[]" type="checkbox" id="ID_Dele[]" value="3"/>
<input name="ID_Dele[]" type="checkbox" id="ID_Dele[]" value="4"/>
<input type="submit"/>
</form>
好$ID_Dele=$_POST['ID_Dele']将会是一个数组,虽然说PHP是弱类型的,但这里可没ASP弱。
ASP可以直接:
SQL="delete from [doing] where id in ('"&ID_Dele&"')"进行删除。但PHP不能把$ID_Dele直接放进去。因为$ID_Dele可不是'1,2,3,4'哦,因为$ID_Dele是一个数组,具有键和值。
好,PHP中也不难,刚好有个函数:implode(),对了。同split()explode()功能刚好相反的一个函数,后两者是用某字符(比如逗号)分割的,而前者则可以拼接为字符串。
因此:
$ID_Dele= implode(",",$_POST['ID_Dele']);
$SQL="delete from `doing` where id in ($ID_Dele)";

$database='';//数据库教程名
$options=array(
    'hostname' => '',//ip地址
    'charset' => 'utf8',//编码
    'filename' => $database.'.sql',//文件名
    'username' => '',
    'password' => ''
);
mysql教程_connect($options['hostname'],$options['username'],$options['password'])or die("不能连接数据库!");
mysql_select_db($database) or die("数据库名称错误!");
mysql_query("SET NAMES '{$options['charset']}'");
$data =  get_insert_sql($table);


function dump_table($table, $fp = null)
{
    $need_close = false;
    if (is_null($fp)) {
        $fp = fopen($table . '.sql', 'w');
        $need_close = true;
    }
$a=mysql_query("show create table `{$table}`");
$row=mysql_fetch_assoc($a);fwrite($fp,$row['Create Table'].';');//导出表结构
    $rs = mysql_query("SELECT * FROM `{$table}`");
    while ($row = mysql_fetch_row($rs)) {
        fwrite($fp, get_insert_sql($table, $row));
    }
    mysql_free_result($rs);
    if ($need_close) {
        fclose($fp);
    }
}

$database='';//数据库教程名
$options=array(
    'hostname' => '',//ip地址
    'charset' => 'utf8',//编码
    'filename' => $database.'.sql',//文件名
    'username' => '',
    'password' => ''
);
mysql_connect($options['hostname'],$options['username'],$options['password'])or die("不能连接数据库!");
mysql_select_db($database) or die("数据库名称错误!");
mysql_query("SET NAMES '{$options['charset']}'");
$data =  get_insert_sql($table);


function get_insert_sql($table, $row)
{
    $sql = "INSERT INTO `{$table}` VALUES (";
    $values = array();
    foreach ($row as $value) {
        $values[] = "'" . mysql_real_escape_string($value) . "'";
    }
    $sql .= implode(', ', $values) . ");";
    return $sql;
}

[!--infotagslink--]

相关文章