peterchen145
peterchen145
3085 6 0

关于这段代码的疑惑

install 文件的第21行到35行,
看不太懂这段代码,谁能帮解释解释

 $DBS->select_db($dbname);
if($DBS->geterrdesc()) {
	if(mysql_get_server_info() > '4.1') {
		$DBS->query("CREATE DATABASE $dbname DEFAULT CHARACTER SET $dbcharset");
	} else {
		$DBS->query("CREATE DATABASE $dbname");
	}
	
	if($DBS->geterrdesc()) {
		exit('指定的数据库不存在, 系统也无法自动建立, 无法安装.<br />');
	} else {
		$DBS->select_db($dbname);
		//成功建立指定数据库
	}
}
0

See Also

Nearby


Discussion (6)

peterchen145
peterchen145 2013-11-15 05:43

整个if语句的判定条件if($DBS->geterrdesc())不是有问题吗?在此if语句里的第二个if语句又判定了了一次,而且执行的操作是“exit('指定的数据库不存在, 系统也无法自动建立, 无法安装.<br />');”??

0
peterchen145
peterchen145 2013-11-15 05:44

外面if语句的判定条件是不是有问题? 在此if语句里的第二个if语句又判断了一次,而执行的操作却是“exit('指定的数据库不存在, 系统也无法自动建立, 无法安装.<br />');”??

0
admin
admin 2013-11-15 07:14

@peterchen145
函数 $DBM->geterrdesc()

function geterrdesc() {
    return (($this-&gt;link) ? mysql_error($this-&gt;link) : mysql_error());
}

主楼的代码作用是尝试建立一个数据库,
第一个 if($DBS->geterrdesc()) 是知道有没有指定的数据库,
第二个if($DBS->geterrdesc()) 是在没发现指定的数据库时尝试建立一个数据库后再连接。

0
peterchen145
peterchen145 2013-11-15 13:52

@admin
兄台能留个邮箱吗? 我正在学习youbbs的代码,有什么问题方便请教

0
admin
admin 2013-11-15 15:13

@peterchen145
从某些角度看,youbbs 的代码很烂,个人觉得并不适合初学者入门参考,这可能会影响你的代码风格,因为这是个人在完全没有php 实例经验的情况下写的,目的是尽量简单一些、性能好一些,所以在php 脚本文件里尽量不用框架、函数,模板上也很差劲,在看了别人比较字符串的并接效率后使用了效率最高的那一种,但为了这几(或者零点几)毫秒的时间而牺牲了可读性……
不建议作为入门学习,倒是建议站在另外的高度来看youbbs 的实现方法(相对用框架来说原生的php 更容易读懂)和缺点。
联系方式见这里 http://saepy.sinaapp.com/topic/47/about

0
我要购物专家
我要购物专家 2013-11-21 02:53

完成对数据库版本的检查以及创建数据库的功能。

0
Login Topics