2014-10-08 73 views
-3

我正在将一个网站移动到较新的服务器,并且此错误出现在前端。mysql():此函数在Typo3中已弃用

PHP : mysql(): This function is deprecated; use mysql_query() instead in /var/www/vhosts/xxxxxx.com/httpdocs/typo3conf/ext/ph_nextgenmenu/pi1/class.tx_phnextgenmenu_pi1.php line 93 

我知道那里的功能可能会被弃用。问题是,这是我转移到新服务器的第三个网站,前两个网站的Typo3版本4.4.0相同,并且它们都有相同的代码行用于访问数据库,因此它不是一个案例不建议使用的功能,是我找不到的一些错误配置。

这是该函数的代码:

function getPages($parentId) 
    { 
     $pages = array(); 
     $query = "SELECT * FROM pages WHERE doktype IN(1, 2, 3, 4) AND deleted = 0 AND hidden = 0 AND pid = " . $parentId . " AND nav_hide = 0 ORDER BY sorting ASC"; 
     $result = mysql(TYPO3_db, $query); 
     while ($row = mysql_fetch_array($result)) 
     { 
      $pages[] = $row; 
     } 
     return $pages; 
    } 

任何帮助,将不胜感激。

+0

要注意的是,即使是一个网站,在Typo3 v4.7最后autumm有这个mysql()函数。 – bucur89 2014-10-08 13:26:51

+0

其他两个网站是否有error_reporting? – Daan 2014-10-08 13:26:58

+0

也许这个网站的'php.ini'文件中有错误。根据您的网站托管方式,他们可能会引用不同的初始化文件。对于其他网站而言,可能会关闭错误,但对于此错误。尽管其他两个站点没有报告这个错误,但错误确实是正确的。 'mysql()'与所有'mysql_ *'函数一起被弃用。您应该考虑升级以使用'mysqli_ *'或'PDO'功能。 – War10ck 2014-10-08 13:29:12

回答

0

首先,这个typo3版本的其他网站是否安装了相同的typo3扩展名(ph_nextgenmenu)并使用它们?

之后,请激活Typo3 INSTALL_TOOL中其他网站的错误报告。您必须查找的部分是“display_errors”。也许其他网站有相同的问题。

至少,如果PHP版本较新,并且不包括错误消息中的扩展名等不推荐使用的函数,我建议升级到较新的typo3版本并找到一种方法用新的扩展名替换扩展名(ph_nextgenmenu)或者手动编辑它以直接使用TYPO3 SQL API或更新的PHP函数。

如果您想要将扩展查询更改为TYPO3 API,API文档可能会对您有所帮助。

我想如果你禁用扩展管理器的扩展该站点应该像其他网站一样工作?

+0

如果我禁用扩展程序,该网站不起作用,基本上该网站充满了旧的弃用功能。我们告诉客户要获得一个新网站。谢谢 – bucur89 2014-10-21 09:56:29