本文将为您提供关于Warning:mssql_connect()[function.mssql-connect]:Unableto的详细介绍,同时,我们还将为您提供关于Fatalerror:Callt
本文将为您提供关于Warning: mssql_connect() [function.mssql-connect]: Unable to的详细介绍,同时,我们还将为您提供关于Fatal error: Call to undefined function mssql_connect()解决办法、java – ArrayList warning- warning:[unchecked]未选中调用add(E),也不会运行文件.请帮忙?、javascript – 构造函数的差异:var X = function(){},var X = function X(){},function X(){}、javascript中function(){}(),new function(),new Function(),Function的实用信息。
本文目录一览:- Warning: mssql_connect() [function.mssql-connect]: Unable to
- Fatal error: Call to undefined function mssql_connect()解决办法
- java – ArrayList warning- warning:[unchecked]未选中调用add(E),也不会运行文件.请帮忙?
- javascript – 构造函数的差异:var X = function(){},var X = function X(){},function X(){}
- javascript中function(){}(),new function(),new Function(),Function
Warning: mssql_connect() [function.mssql-connect]: Unable to
Warning: mssql_connect() [function.mssql-connect]: Unable to connect to server,下面我们来介绍此问题的解决办法。
我有一台服务器win2003SP1+sqlserver2000(已打上SP4补丁)
PHP远程连接sql2000 连接失败是什么情况?
1、服务器本机测试可连接!
2、在自己的电脑上用查询分析器也可以连上!
服务器上的1433端口在监听
sql2000的用户名、密码没错,权限也没问题!
ntwdblib.dll 版本是2000.80.194.0 、php、system32目录下的都已近更新
ntwdblib.dll和php_mssql.dll 都已经复制到system32目录下
extension=php_mssql.dll 前面的分号已近去掉
服务器环境是wamp,更改好之后有重启过的!
试过很多方法都还是连接不上,网上的方法基本上都是过了!实在没有办法啦!求救啊!
下面给出代码和失败提示!
代码:
代码如下 | 复制代码 |
1、$conn=mssql_connect("121.10.108.112",''m123'',''m123'') or die(''连接不上''); 2、$conn=mssql_connect("121.10.108.112:1433",''m123'',''m123'') or die(''不上''); 3、$conn=mssql_connect("121.10.108.112,1433",''m123'',''m123'') or die(''数据库连接不上''); |
3种代码都试过
失败提示:
Warning: mssql_connect() [.mssql-connect]: Unable to connect to server: 121.10.108.112 in C:wampwwwtest.php on line 9
数据库连接不上
解决办法
统是:
win2003+mssql2000+php5.23
实现方法
php目录下有没有ntwdblib.dll有没有这个文件?ntwdblib.dll是客户连接库,如果有查看一下版本号是多少,一般会是7.0的,这个只能与mssq 7.0进行连接,我们为了能与我们现数据库教程版本相同就把mssql下的ntwdblib.dll拷贝到你php 所在的目录替换那个7.0的,重起iis就ok了
Fatal error: Call to undefined function mssql_connect()解决办法
Fatal error: Call to undefined function mssql_connect()
Fatal error: Call to undefined function mssql_connect()
php.ini配置文件里面已经开启
extension=php_mssql.dll
echo phpinfo();
打印phpinfo没有显示mssql模块,证明没有加载,为什么没有加载?
------解决方案--------------------
检查你的extension_dir = "./ext " 路径是否正确.
------解决方案--------------------
1、确认 php_mssql.dll 存在
2、确认 ntwdblib.dll 在系统的搜索路径中
3、确认 你修改的 php.ini 是 php 加载的 php.ini
又,php_mssql 扩展自 php 5.3 起已经废止
------解决方案--------------------
不然!
自 php 5.3 起,mssql 的 php 扩展改由微软自己供应,而不是由 php 开发组织提供
------解决方案--------------------
php 5.2.x 通过 php_mssql.dll 连接 本地的 SQL SEREVR 2005 是可以的。因为我原单位的网站就是这样的,是我弄的。不过要注意的是 SQL SEREVR 2005 的 XML 列是无法操作的
若需要远程连接,则需要打开 SQL SEREVR 2005 的远程访问功能,默认是关闭的
若是更高版本的 SQL SEREVR 则可能会有问题(我没有,无法检验)
这也就是 php 5.3 开始微软自己提供扩展的原因,毕竟性能比 SQL SEREVR 2000 高出许多,让别人弄有失水准
java – ArrayList warning- warning:[unchecked]未选中调用add(E),也不会运行文件.请帮忙?
“warning:[unchecked]未选中调用add(E)作为原始类型的成员java.util.List”
– 我从谷歌搜索中了解到,这个警告是为了不声明在你的错误中应该有什么类型的值,但是我已经做到了,只有当我尝试使用.add()函数数组列表.
当我尝试运行它时,会给出一个更可怕的错误
“静态错误:未定义的名称”PrimeNumbers’
我觉得我在这一点上已经失明了,尽管有几次尝试找不到我做错了什么.有没有人可以散发一些光?非常感谢.
import java.util.*; public class PrimeNumbers { private List listofPrimeNumbers; //add a member variable for the ArrayList public static void main(String args []){ PrimeNumbers primeNumberList = new PrimeNumbers(50); primeNumberList.print(); //use our new print method } public PrimeNumbers (int initialCapacity) { listofPrimeNumbers = new ArrayList<Integer>(initialCapacity/2); //initialCapacity/2 is an easy (if not tight) upper bound long numberOfPrimes = 0; //Initialises variable numberOfPrimes to 0 int start = 2; boolean[] isPrimeNumber = new boolean[initialCapacity + 1]; for (int i=0;i==initialCapacity;i++) {//setting all values in array of booleans to true isPrimeNumber[i] = true; } while (start != initialCapacity) { if (isPrimeNumber[start]) { listofPrimeNumbers.add(start); //add to array list numberOfPrimes++; for (int i = start; start < initialCapacity; i+=start) { isPrimeNumber[i] = false; } } start++; } } public void print() //add this printout function { int i = 1; Iterator iterator = listofPrimeNumbers.listIterator(); while (iterator.hasNext()) { System.out.println("the " + i + "th prime is: " + iterator.next()); i++; } //or just System.out.println(listofPrimeNumbers);,letting ArrayList's toString do the work. i think it will be in [a,b,c,..,z] format } public List getPrimes() {return listofPrimeNumbers;} //a simple getter isnt a bad idea either,even though we arent using it yet }
解决方法
private List listofPrimeNumbers; //add a member variable for the ArrayList
至
private List<Integer> listofPrimeNumbers; //add a member variable for the ArrayList
这将消除警告.
奖金 – 您可能希望在打印方法中使用增强型for循环作为替代方法:
public void print() { int i = 1; for (Integer nextPrime:listofPrimeNumbers) { System.out.println("the " + i + "th prime is: " + nextPrime); i++; } }
javascript – 构造函数的差异:var X = function(){},var X = function X(){},function X(){}
我现在调试其他代码,当他在这两种模式中定义构造函数时我感到很困惑.两者之间有什么特别之处吗?
//constructor 1 var MyObject = function(){ }; //constructor 2 var MyObject = function MyObject(){ };
还有,就像这样创建一个函数的效果.
function MyObject(){};
我只是看每个用例.
解决方法
1)函数未命名,因此您在MyObject.toString()
中没有获得函数名称
var MyObject = function(){};
2)函数已命名,因此您在MyObject.toString()
中获得了函数名称,但无论如何都不推荐使用.
var MyObject = function MyObject (){};
实际上,(1)和(2)之间没有实际区别
3)函数声明而不是函数表达式(See discussion on topic)
function MyObject() {}
这与以前的选项不同,它在实际声明之前的范围内,因此以下代码可以正常工作:
MyObject(); function MyObject() {}
但是,如果你试试这个:
MyObject(); var MyObject = function(){};
你收到一个错误.
我通常只坚持选项1,因为它似乎是最合乎逻辑的
javascript中function(){}(),new function(),new Function(),Function
和java比起来,javascript真的是松散的无以复加,不过这也让我们在无聊之余,有精力去探讨一些复杂的应用,从而在开发之路上,获得一些新的想法。
javascript中的类的构造
javascript中有对象的概念,却没有类的概念。对于基础不牢的同学,很难在类和对象之间加以区分,这里简单的将它们的关系概况为:类是一种抽象的概念,例如瓶子、人、笨蛋;而对象,则是指这种概念中的实体,比如“那个美女手中的那只瓶子”“村长是一个地道的农民”“她的男朋友是个笨蛋”;实例化,就是指以类为基础构建一个实体。类所拥有的特征,其实例化对象,也一定拥有这些特征,而且实例化后可能拥有更多特征。
javascript在用到对象时,完全没有类的概念,但是编程的世界里,无奇不有,我们却可以通过function构造出一种假想的类,从而实现javascript中类的构造。
比如,我们通过下面的方法来构造一个类:
//java
class Book {
private String name;
private double price;
public Book(name,price) {this.name=name;this.price=price;}
public void setName(String name) { this.name = name;}
public void setPrice(double price) {this.price = price;}
public String getInfo() {...}
}
Book book1 = new Book(''java'',13.3);
//javascript
function Book(name,price) {
this.name = name;
this.price = price;
this.setName = function(name) {this.name = name;};
this.setPrice = function(price) {this.price = price};
this.getInfo = function() {return this.name + '' '' + this.price;};
}
var book1 = new Book(''java'',13.3);
这是很好玩儿的一种尝试。这也是本文要讨论的所有问题的起源。
function(){}()让变量快速初始化结果
在《javascript立即执行某个函数:插件中function(){}()再思考》一文中,我详细阐述了function(){}()的作用及理解思路。这里不再赘述,现在,我们面临的新问题是,知道了它的作用,我们如何使用它?
让我们来看一段代码:
var timestamp = function(){
var timestamp = Date.parse(new Date());
return timestamp/1000;
}();
当我们要使用一个变量时,我们希望这个变量在一个环节完成我们的赋值,使用上面的这种方法,可以减少代码上下文执行逻辑,如果按照我们以前的方法,代码可能会写成:
var timestamp = Date.parse(new Data());
timestamp = timestamp/1000;
看上去好像比上面的操作简洁多了,只需要两行代码。但是我们仔细去观察,就会发现第一段代码其实本身仅是一个赋值操作,在function中完成的所有动作将会在function执行完后全部释放,整个代码看上去好像只执行了一条语句一样。
而实际上更重要的意义在于它可以让一个变量在初始化时,就具备了运算结果的效果。
使用new function初始化一个可操作对象
第一部分讲到了javascript中的类,而使用new function就可以实例化这个类。但是我们实际上有的时候在为一个变量赋值的时候,希望直接将它初始化为一个可操作的对象,比如像这样:
// 这里的数据库操作是我虚拟出来的一种数据库操作形式
var $db = new function(){
var $db = db_connect(''127.0.0.1'',''root'','''');
$db.use(''database'');
this.select = function(table,where) {
var result = $db.query(''select from '' + table + '' where '' + where);
return $db.fetchAll(result);
}
};
而当我们要对数据库database进行查询时,只需要通过var list = $db.select(''table'',''1=1'');
进行操作即可,数据库的初始化结果已经在$db这个变量中了。
Function是由function关键字定义的函数对象的原型
在javascript中,多出了一个原型的概念。所谓原型,其实就是一个对象的本质,但复杂就复杂在,原型本身也是对象,因此,任何一个对象又可以作为其他对象的原型。Function就相当于一个系统原型,可以把它理解为一种“基本对象类型”,是“对象”这个概念范畴类的基本数据类型。除了Function之外,其实还有很多类似的首字母大写的对象原型,例如Object, Array, Image等等。有一种说法是:javascript中所有的一切都是对象(除了基本数据类型,其他的一切全是对象),所有的对象都是Object衍生出来的。(按照这种说法,我们应该返回去再思考,上面说的类的假设是否成立。)
极其重要的prototype概念
prototype的概念在javascript中极其重要,它是javascript中完成上面说的“一切皆对象”的关键。有了prototype,才有了原型,有了原型,才有了javascript五彩缤纷的世界(当然,也有人说是杂乱的)。我们可以这样去理解prototype:世界上本没有javascript,上帝说要有Object,于是有了Object,可是要有Function怎么办?只需要对Object进行扩展,可是如何扩展?只需要用prototype……当然,这是乱扯的,不过在javascript中,只要是function,就一定会有一个prototype属性。实际上确实是这样
Function.prototype.show = function() {...}
在原型的基础上通过prototype新增属性或方法,则以该对象为原型的实例化对象中,必然存在新增的属性或方法,而且它的内容是静态不可重载的。原型之所以被称为原型,可能正是因为这种不可重载的特质。
比如上面的这段代码,会导致每一个实例化的function,都会具备一个show方法。而如果我们自己创建了一个类,则可以通过prototype将之转化为原型:
function Cat() {...}
Cat.prototype.run = function() {};
var cat1 = new Cat();
这时,对于cat1而言,Cat就是原型,而该原型拥有一个run的原始方法,所以无论实例化多少个Cat,每一个实例化对象都有run方法,而且该方法是不能被重载的,通过cat1.run = function(){}是无效的。
为了和其他语言的类的定义方法统一,我们可以将这种原型属性在定义类的时候,写在类的构造里面:
function Cat() {
....
Cat.prototype.run = function() {};
}
new Function()是函数原型的一个实例化
在理解了Function原型的概念之后,再来看new Function()就显得很容易了。首先来看下我们是怎么使用这种奇特的写法的:
var message = new Function(''msg'',''alert(msg)'');
// 等价于:
function message(msg) {
alert(msg);
}
new Function(参数1,参数2,...,参数n,函数体),它的本意其实是通过实例化一个Function原型,得到一个数据类型为function的对象,也就是一个函数,而该变量就是函数名。
this在这类function中的指向
this在javascript中真的是无法让我们捉摸透彻。但是有一个小窍门,就是:一般情况下,this指向的是当前实例化对象,如果没有找到该对象,则是指向window。从使用上来讲,我们应该排除new Function的讨论,因为它和我们常用的函数声明是一致的。
普通的函数中this的指向
函数声明的时候,如果使用了this,那么就要看是把该函数当做一个对象加以返回,还是以仅执行函数体。普通函数执行时,我们完全没有引入对象、类这些概念,因此,this指向window。通过代码来看下:
var msg;
function message(msg) {
this.msg = msg;
}
message(''ok'');
alert(msg);
首先是声明一个函数message,在函数中this.msg实际上就是window.msg,也实际上就是代码开头的msg。因此,当执行完message(''ok'')的时候,开头的全局变量msg也被赋值为ok。
通过function构造类时this的指向
如果function被构造为一个类,那么必然存在该类被实例化的一个过程,如果没有实例化,那么该类实际上并没有在程序中被使用。而一旦实例化,那么this将指向实例化的对象。
var age = 3;
var cat1 = new function() {
this.name = ''Tom'';
this.age = 2;
this.weight = function(age) {
var age = age * 2;
var _age = this.age * 2;
return ''weight by age:'' + age + ''; weight by this.age:'' + _age;
}(this.age);
this.eye = new function() {
this.size = ''1.5cm'';
this.color = ''red'';
};
this.catching = function(mouse) {
return this.name + '' is catching '' + mouse;
};
};
alert(cat1.weight);
alert(cat1.eye.color);
alert(cat1.catching(''Jerry''));
上面代码中标记了4处红色的this的使用。根据我们的原则,this指向实例化对象,我们来对每一个this进行分解。
首先是cat1.weight,我使用了function(){}(),直接利用猫咪的年龄进行计算得出体重返回给weight属性。
第一个this.age出现在function(){}(this.age),这个this.age实际上是一个传值过程,如果你对我之前分析function(){}()比较了解的话,应该知道,this.age实际上是和前面this.age = 2指同一个,这里的this.age的this,首先要去找它所在的function,然后看这个function是否被实例化,最后确认,确实被实例化为cat1,因此this=cat1。
第二个this.age出现在function(){this.age}()。同样,你先需要对function(){}()再次深入了解,实际上,function(){}()就是执行一个函数而已,我们前面提到了,普通函数执行中this=window,所以,这里的this.age实际上是var age = 3。
第三个this.color出现在new function(){this.color},这里就比较好玩,由于有一个new,实际上也被实例化了,只不过是对匿名类的实例化,没有类名,而且实例化仅可能出现这一次。因此,this.color的this要去找new function的主人,也就是this.eye,而this.eye的this=cat1,所以cat1.eye.color=''red''。
第四个this.name出现在function(){this.name},它出现在cacthing方法中,它既不是普通的函数执行,也不是实例化为对象,而是正常的类中的方法的声明,因此this指向要去找它所在的function被实例化的对象,也就是cat1。
小结
本文虽然讲了很多,但核心点实际上还是落在javascript的面向对象这个点上。javascript中虽然没有明确的class的概念,那是因为它首先基于type这样的基础概念,并强调一切皆对象的这种思想。如果从哲学上讲,javascript真正符合道生一,一生二,二生万物的原则。不过本文没有提到和继承相关的内容,所有解释也是我自己的一种理解方式,不代表真正的原理,读者请自己通过其他途径进行学习。
本文发布在我的个人博客,请到原地址交流:http://www.tangshuang.net/2280.html
关于Warning: mssql_connect() [function.mssql-connect]: Unable to的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于Fatal error: Call to undefined function mssql_connect()解决办法、java – ArrayList warning- warning:[unchecked]未选中调用add(E),也不会运行文件.请帮忙?、javascript – 构造函数的差异:var X = function(){},var X = function X(){},function X(){}、javascript中function(){}(),new function(),new Function(),Function的相关知识,请在本站寻找。
本文标签: