我不是很精通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();
?>
答案 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无注射应用程序。 如果你需要保持程序风格,那么你就会被 除此之外,无论你选择哪种方式,主要是选择。在我从手册链接的页面中,您将在功能比较中找到一个非常好的比较表。 所有三个扩展的整体性能被认为大致相同。虽然扩展的性能只占PHP Web请求总运行时间的一小部分。通常,影响低至0.1%。
mysql
困住,因为mysqli
只是面向对象的。