用户在线脚本PHP7兼容

时间:2017-10-13 02:32:37

标签: php mysql

我不是很精通PHP。我当前的主机从PHP 5切换到7,我的用户在线脚本不起作用。它通过PHP和MySQL工作,创建一个表并在10分钟后删除它。

任何人都可以帮助使这个PHP 7兼容吗?

这就是基本代码:

CREATE TABLE `user_online` (
`session` char(100) NOT NULL default '',
`time` int(11) NOT NULL default '0'
) ENGINE=MyISAM;

<?php

session_start();
$session=session_id();
$time=time();
$time_check=$time-600; //SET TIME 10 Minute

$host="localhost"; // Host name
$username=""; // Mysql username
$password=""; // Mysql password
$db_name="test"; // Database name
$tbl_name="user_online"; // Table name

// Connect to server and select databse
mysql_connect("$host", "$username", "$password")or die("cannot connect to server");
mysql_select_db("$db_name")or die("cannot select DB");

$sql="SELECT * FROM $tbl_name WHERE session='$session'";
$result=mysql_query($sql);

$count=mysql_num_rows($result);

if($count=="0"){

$sql1="INSERT INTO $tbl_name(session, time)VALUES('$session', '$time')";
$result1=mysql_query($sql1);
}

else {
"$sql2=UPDATE $tbl_name SET time='$time' WHERE session = '$session'";
$result2=mysql_query($sql2);
}

$sql3="SELECT * FROM $tbl_name";
$result3=mysql_query($sql3);

$count_user_online=mysql_num_rows($result3);

echo "User online : $count_user_online ";

// if over 10 minute, delete session
$sql4="DELETE FROM $tbl_name WHERE time<$time_check";
$result4=mysql_query($sql4);

// Open multiple browser page for result


// Close connection

mysql_close();
?>

1 个答案:

答案 0 :(得分:0)

您的代码无法使用,因为从PHP 7中删除了 。自PHP 5.5(2013年6月!)以来,已被弃用。< / p>

  

建议使用mysqli或PDO_MySQL扩展。建议不要将旧的mysql扩展用于新开发,因为它在PHP 5.5.0中已被弃用,并在PHP 7中被删除。

您可以在the manual中看到您的选项。

您基本上有两个选项,PHP Data Objects (PDO)MySQL Improved (mysqli)。两者都支持prepared statements,这将允许您开发virtually SQL无注射应用程序。

如果你需要保持程序风格,那么你就会被mysql困住,因为mysqli只是面向对象的。

除此之外,无论你选择哪种方式,主要是选择。在我从手册链接的页面中,您将在功能比较中找到一个非常好的比较表。

  

所有三个扩展的整体性能被认为大致相同。虽然扩展的性能只占PHP Web请求总运行时间的一小部分。通常,影响低至0.1%。