Jump to content
Sign in to follow this  
Graf

PHP 5.x => PHP 7.x

Recommended Posts

Всем привет.

На форуме, как я заметил, большинство(если не все) web-части написаны под PhP 5.x.

К примеру возьмем короткий код e1mer для вывода онлайна персонажей:

<?php
	$host = "ХОСТ MSSQL";
	$user = "Пользователь MSSQL";
	$pass = "Пароль";
	
	@mssql_connect($host, $user, $pass) or die("Ошибка: Невозможно найти хост: {$host}!");
	
	$query = mssql_query("SELECT * FROM GameDB.dbo.character WHERE mem_addr > 1");

	if (mssql_num_rows($query) > 0)  {
		for ($i=1; $table = mssql_fetch_assoc($query); $i++) {
			$page .= "{$table['cha_name']}, {$table['job']} <br />";
		}
		$hide = "Имя игрока, профессия, карта <br />{$page}";
	} else { 
		$hide = "Нет игроков в сети!";
	}
	print_r($hide);
?>

Прошу показать, как надо изменить данный код, чтобы он соответствовал PHP 7.x.

Заранее спасибо.

Share this post


Link to post
Share on other sites
<?php
	$host = "127.0.0.1, 3707";
	$database = "GameDB";
	$user = "game";
	$pass = "Y87dc#$98";
	
	$conn = new PDO("sqlsrv:server=$host ; Database = $database", $user, $pass);
	$query = "SELECT cha_name, job FROM character WHERE mem_addr > 0";

	if ($conn) {
		$stmt = $conn->query($query);
		$fetch = $stmt->fetch(PDO::FETCH_ASSOC);
		
		if (is_array($fetch)) {
			echo "Имя игрока, профессия<br />";
			while ($row = $stmt->fetch()) {
				echo $row['cha_name'].", ". $row['job']."<br />\n";
			}		
		}
		else {
			echo "Нет игроков в сети.";
		}
	} else {
		die("нет соединения.");
	}
?>

Стоит заметить, что job хранит id профессии, а не само название. Я так понимаю, должен быть какой-то дополнительный функционал, чтобы отобразить собственно название профессии.

  • Thanks 1

Share this post


Link to post
Share on other sites

Привет, @Graf!

 

Из PHP 7.x были удалены старые MSSQL функции и теперь для работы с базами данных предлагается использовать интерфейс PDO.

  • Thanks 1

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...