Перенос скриптов с PHP 5.х на PHP 7.x
Чаще всего, основная проблема при переносе заключается в отсутствии в PHP 7.x модуля mysql, вместо него предлагается использовать mysqli. Однако если код достаточно обьемный, то перелопатить его чтобы адаптировать к новой версии PHP достаточно сложно и не всегда возможно. Однако есть выход: можно «эмулировать» устаревший код. Например эмуляция модуля mysql возможна следующим скриптом (достаточно его в код в виде include_once ‘mysql.php’) :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
<?php function mysql_connect($server,$username,$password,$new_link,$client_flags) { $GLOBALS['mysql_oldstyle_link']=mysqli_connect($server,$username,$password); return $GLOBALS['mysql_oldstyle_link']; } function mysql_query($sql) { return mysqli_query($GLOBALS['mysql_oldstyle_link'],$sql); } function mysql_fetch_row($res) { return mysqli_fetch_row($res); } function mysql_fetch_assoc($res) { return mysqli_fetch_assoc($res); } function mysql_fetch_array($res) { return mysqli_fetch_array($res); } function mysql_fetch_object($res) { return mysqli_fetch_object($res); } function mysql_affected_rows($link=NULL) { if ($link===NULL) $link=$GLOBALS['mysql_oldstyle_link']; return mysqli_affected_rows($link); } function mysql_insert_id($link=NULL) { if ($link===NULL) $link=$GLOBALS['mysql_oldstyle_link']; return mysqli_insert_id ($link); } function mysql_select_db($database_name) { return mysqli_select_db($GLOBALS['mysql_oldstyle_link'],$database_name); } function mysql_errno($link=NULL) { if ($link===NULL) $link=$GLOBALS['mysql_oldstyle_link']; return mysqli_errno($link); } function mysql_error($link=NULL) { if ($link===NULL) $link=$GLOBALS['mysql_oldstyle_link']; return mysqli_error($link); } function mysql_num_rows($res) { return mysqli_num_rows($res); } function mysql_free_result($res) { return mysqli_free_result($res); } function mysql_close($link) { return mysqli_close($link); } function mysql_real_escape_string($sql,$link=NULL) { if ($link===NULL) $link=$GLOBALS['mysql_oldstyle_link']; return mysqli_real_escape_string($link,$sql); } function mysql_get_server_info($link=NULL) { if ($link===NULL) $link=$GLOBALS['mysql_oldstyle_link']; return mysqli_get_server_info($link); } |