创造,回归,;在PHP中使用对象
我有一套功能: 一个创建连接,另一个使用该函数进行不同类型的数据库交互 我正在检索错误创造,回归,;在PHP中使用对象,php,mysqli,Php,Mysqli,我有一套功能: 一个创建连接,另一个使用该函数进行不同类型的数据库交互 我正在检索错误 Call to undefined method mysqli::execute() 这说明我没有正确发送对象,我做了一些研究,但没有找到示例 <?php function con(){ $mysqli = new Mysqli("localhost","user","pass","image_blog"); if ($mysqli->connect_errno) { echo "Faile
Call to undefined method mysqli::execute()
这说明我没有正确发送对象
,我做了一些研究,但没有找到示例
<?php
function con(){
$mysqli = new Mysqli("localhost","user","pass","image_blog");
if ($mysqli->connect_errno) {
echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}else{
return $mysqli;
}};
function getAll(){
$mysqli = con();
$stmt = $mysqli->prepare("SELECT * FROM posts");
$stmt = $mysqli->execute(); <--- ERROR HERE
$stmt = $mysqli->get_result();
$stmt = $mysqli->close();
while($row = mysqli_fetch_array($stmt, MYSQL_ASSOC)) {
echo "Username: " . $row["image"];
echo "Username: " . $row["title"];
echo "Username: " . $row["text"];
echo "Username: " . $row["up"];
echo "Username: " . $row["date"];
}
};
function anotherFunction(){
}
function yetAnotherFunction(){
}
应该是
$stmt->execute();
$result = $stmt->get_result();
$stmt->close();
$mysqli->close();
而不是
$stmt = $mysqli->execute();
$stmt = $mysqli->get_result();
$stmt = $mysqli->close();
请参阅(示例)。您应该执行语句($stmt),而不是$mysqli
$stmt->execute()
在PUTR中也考虑使用PDO类,因为它使事情变得更容易了。
< P>我看到了你试图用MySQL实现连接函数。而不是从每个功能单独连接。正如Smith先生所提到的,您已声明变量$stmt
如下:
$stmt = $mysqli->prepare('SELECT * FROM posts');
这是不正确的,因为准备好的语句不会返回要在变量中使用的数据,因此会出现错误
另一种方法是使用类,另一种更高级的方法是扩展mySQLi类
Class myClass{
protected $dbh;
public function __construct(){
$this->dbh=new mysqli('','','','');
}
public function getAll(){
$this->dbh->prepare('SELECT * FROM posts');
$this->dbh->execute();
$this->dbh->bind_result($image,$title,$text,$up,$date);
while($this->dbh->fetch()){
echo"Username:".$image;
//and so on
}
$this->dbh->close();
}
public function anotherFunction(){
}
public function yetAnotherFunction(){
}
}
如果以前没有使用过类,现在需要创建该类的实例:
$databaseUser = myClass();
要启动您的功能,请执行以下操作:
$databaseUser->getAll();