php – 使用OOP从MySQL获取数据
发布时间:2020-12-13 22:02:28 所属栏目:PHP教程 来源:网络整理
导读:我是OOP PHP的初学者. 我正在尝试创建一个连接,查询和获取数据的类 我完成了以下编码 class MySQL { private $set_host; private $set_username; private $set_password; private $set_database; public function __Construct($set_host,$set_username,$set_
我是OOP
PHP的初学者.
我正在尝试创建一个连接,查询和获取数据的类 我完成了以下编码 class MySQL { private $set_host; private $set_username; private $set_password; private $set_database; public function __Construct($set_host,$set_username,$set_password){ $this->host = $set_host; $this->username = $set_username; $this->password = $set_password; $con= mysql_connect($this->host,$this->username,$this->password); if(!$con){ die("Couldn't connect"); } } public function Database($set_database) { $this->database=$set_database; mysql_select_db($this->database)or die("cannot select Dataabase"); } public function Fetch($set_table_name){ $this->table_name=$set_table_name; $query=mysql_query("SELECT * FROM ".$this->table_name); $result= mysql_fetch_array($query); } } $connect = new MySQL('localhost','root',''); $connect->Database('cms'); $connect->Fetch('posts'); 我想要实现的是这个 $connect = new MySQL('localhost',''); $connect->Database('cms'); $connect->Fetch('posts'); 我想用这样的格式获取数据 echo $result[0]; 但我没有得到这种逻辑来实现这一目标 谢谢! 解决方法
您的Fetch函数只从数据库中拉出一行,而您没有返回结果…
该方法不是最好的,但为了实现您想要做的事情: public function Fetch($set_table_name){ $query=mysql_query("SELECT * FROM ".$set_table_name); $result = array(); while ($record = mysql_fetch_array($query)) { $result[] = $record; } return $result; } 这将使每行成为$result的一部分,但您必须像这样访问它: 您可以像这样调用fetch函数: $result = $connect->Fetch('posts'); echo $result[0]['columnName']; // for row 0; 或者循环: for ($x = 0; $x < count($result); $x++) { echo $result[$x][0] . "<BR>"; // outputs the first column from every row } 也就是说,将整个结果集提取到内存中并不是一个好主意(有人会说这是一个非常糟糕的主意.) 编辑:看起来你的班级还有其他问题…我必须跑,但明天会回来查看,如果其他人没有按你说话,我会扩展. 编辑2:好的,要在你的课上做一次性尝试并尝试解释一些事情: class MySQL { //declaring the private variables that you will access through $this->variable; private $host; private $username; private $password; private $database; private $conn; // Adding the connection,more on this later. public function __Construct($set_host,$set_password){ $this->host = $set_host; $this->username = $set_username; $this->password = $set_password; // Combining the connection & connection check using 'or' // Notice that I removed the semi-colon after the mysql_connect function $this->conn = mysql_connect($this->host,$this->password) or die("Couldn't connect"); } public function Database($set_database) { $this->database=$set_database; // Adding the connection to the function allows you to have multiple // different connections at the same time. Without it,it would use // the most recent connection. mysql_select_db($this->database,$this->conn) or die("cannot select Dataabase"); } public function Fetch($table_name){ // Adding the connection to the function and return the result object instead return mysql_query("SELECT * FROM ".$table_name,$this->conn); } } $connect = new MySQL('localhost',''); $connect->Database('cms'); $posts = $connect->Fetch('posts'); if ($posts && mysql_num_rows($posts) > 0) { echo "Here is some post data:<BR>"; while ($record = mysql_fetch_array($posts)) { echo $record[0]; // or a quoted string column name instead of numerical index. } } else { echo "No posts!"; } 我希望这有帮助……至少应该让你开始.如果您有更多问题,请分别询问. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |