peterchen145 avatar

关于这段代码的疑惑

🕡 by peterchen145

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$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);
		//成功建立指定数据库
	}
}

💘 相关文章

评论

共6条关于"关于这段代码的疑惑"的评论

peterchen145 avatar
#1 peterchen145 回复

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

peterchen145 avatar
#2 peterchen145 回复

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

admin avatar
#3 admin 回复

@peterchen145 函数 $DBM->geterrdesc()

1
2
3
function geterrdesc() {
    return (($this-&gt;link) ? mysql_error($this-&gt;link) : mysql_error());
}
主楼的代码作用是尝试建立一个数据库, 第一个 if($DBS->geterrdesc()) 是知道有没有指定的数据库, 第二个if($DBS->geterrdesc()) 是在没发现指定的数据库时尝试建立一个数据库后再连接。

peterchen145 avatar
#4 peterchen145 回复

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

admin avatar
#5 admin 回复

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

写一条评论

Based on Golang + fastHTTP + sdb | go1.16.5 Processed in 1ms