Quantcast
Channel: Forum Pasja Informatyki - Najnowsze pytania bez odpowiedzi
Viewing all articles
Browse latest Browse all 21942

MYSQLi nie działa

$
0
0

Cześć, piszę sobie taki mały programik, który ma wysyłać jakiś tekst do bazy danych i go też pobierać. Działa to na ajaxie. Ajax działa i wysyła 'zapytania' do pliku php, który działa na xamppie. Problem polega na tym, że w momencie łączenia się z bazą w 'new mysqli(...);' program się zatrzymuje czy kij wie co i nic nie wraca. Bez tego, php normalnie zwraca wszystkie informacje - tzn. jak wpisze 'echo "COŚ";' to w konsoli zwróci mi, że ajax dostał "COŚ". Tutaj kod dwóch metod na wysyłanie i odbieranie danych plus php:

var _loadData = () => {
		if(_isConnected) {
			$$.post(
				_host,
				{
					responseFor: "load",
					channel: _channel
				},
				(data, xhr, status) => {
					console.log(data);
					console.log(xhr);
					console.log(status);
				},
				(xhr, status) => {
					console.log(xhr);
					console.log(status);
					_initState.alert("Cannot to load data.");
				}
			);
		} else {
			_initState.alert("No internet connection.");
		}
	};
	var _sendData = (dataStr) => {
		_messages.push({
			info: dataStr
		});
		$$.post(
			_host,
			{
				responseFor: "send",
				info: dataStr,
				channel: _channel
			},
			(data, xhr, status) => {
				console.log(data);
			},
			(xhr, status) => {
				_initState.alert("Cannot to send data.");
			}
		);
		_updateMessagesList();
	};

php:

<?php
class DatabaseManager{
	private $link;
	private $debbuggingMode;

	public function __construct($host, $user, $password, $database) {
		$this->link = new mysqli($host, $user, $password, $database);
		if(!$this->link) {
			$this->err('Could not connect: ' . mysqli_error($this->link));
		}
	}

	public function setDebbuggingMode($dbgMode) {
		$this->debbuggingMode = $dbgMode;
	}

	private function err($info) {
		if($this->debbuggingMode) {
			echo $info;
		}
		if($this->link) {
			$this->close();
		}
		exit();
	}

	public function load($channel) {
		echo "DANE:";
		$query = "SELECT 'info', 'channel' FROM 'messages' WHERE 'channel'='"+$channel+"' ORDER BY LIMIT 15";
		if($result = mysqli_query($this->link, $query)) {
			while($row = $result->fetch_row()) {
				echo $row[0]."".$row[1]."\n";
			}
			$result->close();
		} else {
			echo $this->err('Query failed: ' . mysqli_error($this->link));
		}
	}

	public function send($info, $channel) {
		echo "WYSYŁANIE:";
		$query = "INSERT INTO 'messages' ('id', 'channel', 'info') VALUES (NULL, '"+$channel+"', '"+$channel+"')";
		if(mysqli_query($this->link, $query)) {
			echo "SUCCESS";
		} else {
			echo $this->err('Query failed: ' . mysqli_error($this->link));
		}
	}

	public function close() {
		mysqli_close($this->link);
	}
}

if(isset($_POST['responseFor']) && isset($_POST['channel'])) {
	$dbManager = new DatabaseManager('127.0.0.1:8080', 'root', '', 'cserver');
	$dbManager->setDebbuggingMode(TRUE);
	if($_POST['responseFor'] == "load") {
		if(isset($_POST['channel'])) {
			echo "BDF";
			$dbManager->load($_POST['channel']);
		} else {
			echo "NO_CHANNEL";
		}
	} else if($_POST['responseFor'] == "send") {
		if(isset($_POST['info'])) {
			if(isset($_POST['channel'])) {
				echo "BDF";
				$dbManager->send($_POST['info'], $_POST['channel']);
			} else {
				echo "NO_CHANNEL";
			}
		} else {
			echo "NO_INFO";
		}
	} else {
		echo "NO_QUERY_FOR";
	}
	$dbManager->close();
} else {
	echo "NO_QUERY_FOR";
}
?>

Co ja tu zwaliłem?


Viewing all articles
Browse latest Browse all 21942

Trending Articles


TRX Antek AVT - 2310 ver 2,0


Автовишка HAULOTTE HA 16 SPX


POTANIACZ


Zrób Sam - rocznik 1985 [PDF] [PL]


Maxgear opinie


BMW E61 2.5d błąd 43E2 - klapa gasząca a DPF


Eveline ➤ Matowe pomadki Velvet Matt Lipstick 500, 506, 5007


Auta / Cars (2006) PLDUB.BRRip.480p.XviD.AC3-LTN / DUBBING PL


Peugeot 508 problem z elektroniką


AŚ Jelenia Góra