<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[世间已无理想乡 — PHP5项目迁移PHP7.X MYSQL兼容性问题解决方案]]></title>
		<link>https://bbs.hyqinglan.net/topic/253/</link>
		<atom:link href="https://bbs.hyqinglan.net/feed/rss/topic/253" rel="self" type="application/rss+xml" />
		<description><![CDATA[PHP5项目迁移PHP7.X MYSQL兼容性问题解决方案 里最新回复的帖子]]></description>
		<lastBuildDate>Fri, 19 Aug 2022 05:31:51 +0000</lastBuildDate>
		<generator>PunBB 1.4.6</generator>
		<item>
			<title><![CDATA[回复: PHP5项目迁移PHP7.X MYSQL兼容性问题解决方案]]></title>
			<link>https://bbs.hyqinglan.net/post/1480/#p1480</link>
			<description><![CDATA[<div class="quotebox"><cite>黑豆 写道:</cite><blockquote><p>chaodiao，码农大光头</p></blockquote></div><p>我复制来的！！</p>]]></description>
			<author><![CDATA[null@example.com (和月清岚)]]></author>
			<pubDate>Fri, 19 Aug 2022 05:31:51 +0000</pubDate>
			<guid>https://bbs.hyqinglan.net/post/1480/#p1480</guid>
		</item>
		<item>
			<title><![CDATA[回复: PHP5项目迁移PHP7.X MYSQL兼容性问题解决方案]]></title>
			<link>https://bbs.hyqinglan.net/post/1478/#p1478</link>
			<description><![CDATA[<p>chaodiao，码农大光头</p>]]></description>
			<author><![CDATA[null@example.com (黑豆)]]></author>
			<pubDate>Fri, 19 Aug 2022 05:23:53 +0000</pubDate>
			<guid>https://bbs.hyqinglan.net/post/1478/#p1478</guid>
		</item>
		<item>
			<title><![CDATA[PHP5项目迁移PHP7.X MYSQL兼容性问题解决方案]]></title>
			<link>https://bbs.hyqinglan.net/post/1476/#p1476</link>
			<description><![CDATA[<p>我有一台运行超过10年的服务器运行了一些老的开源程序和一些手写的过时代码，例如DEDECMS的老版本，记事狗的老版本，PHPWIND的老版本，春节假期手贱，进行了PHP的版本升级，从PHP5.6升级到了PHP7.x。升级之后，安全性肯定会高一些，在这台服务器上也可以做更多的事情了。但是问题来了，很多代码都无法运行，经过检查服务器日志</p><p>tail -f /var/log/apache2/error_log</p><p>发现问题大多数都是因为PHP7已经不支持mysql扩展库，mysql_* 系列函数在PHP7.x 7.0以后已经废弃。所以报错，报错示例如下：</p><p>Uncaught Error: Call to undefined function mysql_connect()</p><p>Uncaught Error: Call to undefined function mysql_result()</p><p>于是，寻找解决方法，开始我想着替换程序中的所有方法为mysqli的对应方法，后来发现一行一行改工程量巨大，既然函数不存在，我直接写对应的函数或者单独写一个外挂文件include到对应的数据库类就好了。</p><p>解决问题代码如下，供大家参考。</p><br /><p>if(!function_exists(&#039;mysql_pconnect&#039;)){<br />function mysql_pconnect($dbhost, $dbuser, $dbpass){<br />global $dbport;<br />global $dbname;<br />global $linkid;<br />$linkid = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname);<br />return $linkid;<br />}<br />function mysql_connect($dbhost, $dbuser, $dbpass){<br />global $dbport;<br />global $dbname;<br />global $linkid;<br />$linkid = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname);<br />return $linkid;<br />}<br />function mysql_select_db($dbname){<br />global $linkid;<br />return mysqli_select_db($linkid,$dbname);<br />}<br />function mysql_fetch_array($result, $type=&#039;&#039;){<br />if ($type) {<br />return mysqli_fetch_array($result, $type);<br />}else{<br />return mysqli_fetch_array($result);<br />}<br />}<br />function mysql_fetch_assoc($result){<br />return mysqli_fetch_assoc($result);<br />}<br />function mysql_fetch_row($result){<br />return mysqli_fetch_row($result);<br />}<br />function mysql_free_result($result){<br />return mysqli_free_result($result);<br />}<br />function mysql_query($cxn){<br />global $linkid;<br />return mysqli_query($linkid,$cxn);<br />}<br />function mysql_insert_id(){<br />global $linkid;<br />return mysqli_insert_id($linkid);<br />}<br />function mysql_affected_rows(){<br />global $linkid;<br />return mysqli_affected_rows($linkid);<br />}<br />function mysql_escape_string($data){<br />global $linkid;<br />return mysqli_real_escape_string($linkid, $data);<br />}<br />function mysql_real_escape_string($data){<br />global $linkid;<br />return mysqli_real_escape_string($linkid, $data);<br />}<br />function mysql_close(){<br />global $linkid;<br />return mysqli_close($linkid);<br />}<br />function mysql_get_server_info(){<br />global $linkid;<br />return mysqli_get_server_info($linkid);<br />}<br />function mysql_num_rows($result){<br />return mysqli_num_rows($result);<br />}<br />function mysql_result($result,$row){<br />$arr = mysqli_fetch_array($result);<br />return $arr[$row];<br />}<br />}</p> <br /><br /><p>以记事狗程序为例，我把这些代码粘贴到了include/class/jishigou/mysql.class.php的最下方，经过一番折腾告于段落，对需要的人有所提示。</p>]]></description>
			<author><![CDATA[null@example.com (和月清岚)]]></author>
			<pubDate>Fri, 19 Aug 2022 00:51:56 +0000</pubDate>
			<guid>https://bbs.hyqinglan.net/post/1476/#p1476</guid>
		</item>
	</channel>
</rss>
