Я прочитал несколько потоков здесь в stackoverflow о операторах pdo внутри классов, но я не могу найти подходящий для моего случая.
У меня есть следующее:
<?php
class Tracking
{
public function trackVisit($conversion){
$db = mysqli_connect(DB_SERVER,DB_USERNAME,DB_PASSWORD,DB_DATABASE);
if ($db->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$ipaddress = $_SERVER['REMOTE_ADDR'];
echo $ipaddress;
$page = "{$_SERVER['HTTP_HOST']}";
echo $page;
if(isset($_SERVER['HTTP_REFERER'])){
$referrer = $_SERVER['HTTP_REFERER'];
}else{
$referrer="none";
}
echo $referrer;
$datetime = mktime();
echo $datetime;
$useragent = $_SERVER['HTTP_USER_AGENT'];
echo $useragent;
$convers = $conversion;
echo $convers;
$stmt = $db->prepare("SELECT IP FROM analytics WHERE IP = ?");
$stmt->bind_param("s", $ipaddress);
$stmt->execute();
$stmt -> bind_result($theip);
while($stmt->fetch()) {
$theip2 = $theip;
}
$result = $stmt->num_rows;
echo $result;
$stmt -> close();
//check if ip address is already on db
if($result == "1") {
echo "ya existe la ip";
}else{
echo "no existe";
$stmt = $db->prepare("INSERT INTO analytics(IP, PAGE, REFERRER, USER_AGENT, DATE, CONVERTED) VALUES(?, ?, ?, ?, ?, ?)"); //Fetching all the records with input credentials
var_dump($stmt);
$stmt->bind_param("sssssi", $ipaddress, $page, $referrer, $useragent, $datetime, $convers); //Where s indicates string type. You can use i-integer, d-double
$stmt->execute();
$result = $stmt->affected_rows;
echo $result;
$stmt -> close();
}
$db -> close();
}
}
?>
Однако он не работает, поскольку он ничего не добавляет в базу данных и не возвращает никаких ошибок.
Есть идеи, что случилось?
Спасибо!