所以我正在尝试创建一个可用于连接mysql数据库的类。在尝试使用我的课程之前,不应该先进,这一切都很有趣和游戏。这是我的代码:
班级:
<?php
class createCon {
var $host = 'localhost';
var $user = 'root';
var $pass = '';
var $db = 'example';
var $myconn;
function connect() {
$con = mysqli_connect($this->host, $this->user, $this->pass, $this->db);
if (!$con) {
die('Could not connect to database!');
} else {
$this->myconn = $con;
echo 'Connection established!';}
return $this->myconn;
}
function close() {
mysqli_close($myconn);
echo 'Connection closed!';
}
}
?>
这是我尝试查询数据库的地方:
<?php
include 'connect.php';
$connection = new createCon();
$connection->connect();
$query = 'SELECT * FROM `nickname`';
$result = mysqli_query($connection, $query);
if($numrows = mysqli_num_rows($result)) {
echo $numrows;
while ($row = mysqli_fetch_assoc($result)) {
$dbusername = $row['nick'];
$dbpassword = $row['pass'];
echo $dbusername;
echo $dbpassword;
}}
?>
当我尝试进行查询时出现以下错误:
( ! ) Warning: mysqli_query() expects parameter 1 to be mysqli, object given in C:\wamp\www\uppgift 1 kompletering\test.php on line 13
( ! ) Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, null given in C:\wamp\www\uppgift 1 kompletering\test.php on line 15
我想我有点理解为什么我会得到错误,但是我不知道如何修复错误。尝试了一百万件事,没有任何作品。我对OOP和php都很陌生,并会非常喜欢一些建议!
答案 0 :(得分:10)
您希望传递$connection->myconn
而不是$connection
。如:
$result = mysqli_query($connection->myconn, $query);
就目前而言,你传递的是一个类的实例,而不是一个mysqli,这是错误消息所抱怨的。
答案 1 :(得分:5)
在数据库连接类中返回连接。在php类中,你必须捕获该连接变量
$connection = new createCon();
$conn = connection->connect();
您可以将$conn
变量用作mysqli_query()
参数,例如
$result = mysqli_query($conn, $query);
这适合我。
答案 2 :(得分:0)
我个人使用 Wolf Software 中的mysqli_ext
进行了一些小修改。他们的网站不再可供下载,但我已下载了我的网站副本供您下载。它是根据GPL许可的,因此您可以修补它。它可能会取代您的课程,或者它可能会为您提供使您的课程正常工作所需的信息!
连接:
$sDB = new mysqli_ext($dbHost, $dbUser, $dbPass, $dbBase);
if ($sDB->connection_failed) {
/* Error */
}
选择查询:
$sDB->select("SELECT * FROM `albums` WHERE `listedtype` = 'PUBLIC' ORDER BY `createdon` LIMIT ?, ?", "ii", $aStart, $aAlbums);
其他查询:
$sDB->execute_query("UPDATE `photos` SET `views` = `views` + 1 WHERE `picid` = ?", "s", $sPhoto);
从:http://www.tip2tail.co.uk/files/mysqli.class.zip
下载希望有所帮助!