Thursday, August 19, 2021

PHP 5.6 更新到 PHP8.0 遇到的問題 (Windows環境)

 由於PHP版本太舊,以前舊項目需要更新PHP版本,例如PHP5.6在兩三年前已經停止漏洞更新,所以直接升到最新的PHP8.0時,代碼出現的沖突情況,簡單總結一下解決方法︰

在新下載的PHP目錄中,有一個php.ini-production,先改名為php.ini,再開始下面設定︰

第一個

Fatal error: Uncaught Error: Call to undefined function mysql_connect() in xxxxxxx.php:6 Stack trace: #0 xxxxxxxxx.php(2): include_once() #1 {main} thrown in xxxxxxxx.php on line 6

首先,mysql模組在PHP7以後就不支持了,所有的SQL語法要改為mysqli。
在php.ini取消註解mysqli
        ;extension=mysqli
    改為
        extension="C:\php-8.0.9\ext\php_mysqli.dll"

可以看看phpinfo()有沒有生效。

然後要將所有mysql_XXX改為mysqli_XXX︰
例如︰

  • mysql_connect 改為 mysqli_connect 
  • mysql_error 改為 mysqli_error 
  • mysql_query 改為 mysqli_query
  • mysql_query(XXX) 過往允許一個參數,到了mysqli_query後不允許,要改為兩個參數…
待續…

No comments: