我正在尝试从另一个文件中调用方法,但是当代码到达该行时,它只是保持加载状态,不会继续运行,并且该函数不会返回任何内容。我有使用array
和连接参数的函数,我从其他php调用它。
函数.php:
class OperatiiBD
{
//getting a specified token to send push to selected device
public function getTokenByEmail($email){
require_once 'conn.php';
$stmt = $conn->prepare("SELECT token_notificare FROM informatii_persoane WHERE adresa_mail = ?");
$stmt->bind_param("s",$email);
$stmt->execute();
$result = $stmt->get_result()->fetch_assoc();
return $result['token_notificare'];
}
public function getEmailById($array_utiliz, $conn){
$max = count($array_utiliz);
$i=0;
while($i < $max){
$stmt = $conn->prepare("SELECT adresa_mail FROM informatii_persoane WHERE id_utilizator = ?");
$stmt->bind_param("s",$array_utiliz[$i]);
$stmt->execute();
$result = $stmt->get_result()->fetch_assoc();
$array_adrese_mail[]=$result;
}
return $array_adrese_mail;
}
}
我的称呼方式:
require_once 'OperatiiBD.php';
$db = new OperatiiBD();
echo $db->getEmailById($utilizatori_notificari, $conn);
我已检查,$utilizatori_notificari
返回[79,34,109],正是所需的输出。
创建类的经典而简单的解决方案如下,无需包含OperatiiBD.php
class OperatiiBD {
protected $conn;
function __construct($conn) {
$this->conn = $conn;
}
public function getTokenByEmail($email) {
$stmt = $this->conn->prepare("SELECT token_notificare FROM informatii_persoane WHERE adresa_mail = ?");
$stmt->bind_param("s", $email);
$stmt->execute();
$result = $stmt->get_result()->fetch_assoc();
return $result['token_notificare'];
}
}
呼叫班(乌萨克):
require_once 'OperatiiBD.php';
$YouCls = new OperatiiBD($conn);
$user = $YouCls->getTokenByEmail($_POST['email']);