編譯mysql支持php7,php7 mysql8

本文目錄一覽:

PHP7連接mysql數據庫方法

1、用 mysql_connect 的方法,PHP7會報致命錯誤

$conn= mysql_connect(‘localhost’,’xueyanxiang’,’xueyanxiang’);

Fatal error : Uncaught Error: Call to undefined function mysql_connect() in /Users/xueyanxiang/work/test/xue.php:31 Stack trace: #0 /Users/xueyanxiang/work/test/xue.php(119): xue-run() #1 {main} thrown in  /Users/xueyanxiang/work/test/xue.php  on line  31

原因是:

PHP5中使用mysql_connect()函數進行連接,但實際上,PHP5.5開始,MySQL就不推薦使用了,屬於廢棄函數

PHP7中貌似已經徹底不支持了,根據官網說明,取而代之的是如下兩個:

本擴展自 PHP 5.5.0 起已廢棄,並在將來會被移除。應使用 MySQLi 或 PDO_MySQL 擴展來替換之。參見 MySQL:選擇

API 指南以及相關 FAQ 以獲取更多信息。用以替代本函數的有:

mysqli_connect()

PDO::__construct()

使用時,不要在使用mysql_connect了,可以換用mysqli_connect(),用法基本類似吧,據說是面向對象的庫。

php.ini中,也只有extension=php_mysqli.dll,而不再有extension=php_mysql.dll這個拓展了。

2、可以使用mysqli,對象化,方法名與被廢棄的類似

$conn= mysqli_connect(‘localhost’,’xueyanxiang’,’xueyanxiang’);

3、PDO工具,推薦使用

$dbh= “mysql:host=localhost;dbname=test”;

$db= new PDO($dbh,’xueyanxiang’,’xueyanxiang’);

$objQuery= $db-query(“select * from user;”);

$res= $objQuery-fetchAll(PDO::FETCH_ASSOC);

不填寫參數的話,默認是關聯和索引都有,如下圖

PHP7.0怎麼通過打開擴展功能和mysql相連?

第一步:進入php源碼中的”ext/mysql”目錄下

第二步:在當前目錄下運行phpize命令:/usr/local/php524/bin/phpize

phpize的規則:去哪個目錄下運行phpize文件,那麼就會在該目錄下生成一個configure文件。

第三步:運行剛才生成的configure文件

命令: ./configure –with-php-config=/usr/local/php524/bin/php-config –with-mysql=/usr/local/mysql/

這裡最關鍵的是通過–with-mysql參數告訴mysql客戶端的位置。這樣才能生成mysql.so。

實驗的時候,沒有加這個參數,結果錯誤:

./configure –with-php-config=/usr/local/php524/bin/php-config

第四步:編譯生成.so文件

第五步:配置php引擎加載該擴展。

補充一下:就是去php.ini文件中修改一下配置,加載mysql.so這個擴展(這個擴展文件要放到php指定的擴展目錄下面去)

第六步:測試php引擎是否成功加載該擴展編寫文件phpinfo.php,內容是:?php ehco phpinfo(); ?

運行後,可以看到有如下信息顯示:mysqlMySQLSupport    enabledActive PersistentLinks     0

Active Links     0

Client API version     5.1.55

MYSQL_MODULE_TYPE     no value

MYSQL_SOCKET     /tmp/mysql.sock

MYSQL_INCLUDE     no value

MYSQL_LIBS     no value

通過這樣的方式可以確認,php引擎已經成功加載了mysql.so擴展。

第七步:已經生成的mysql.so。編寫php代碼測試是否能連接mysql。

一、為什麼書中一般是常常是這樣的順序安裝。

先安裝mysql,然後再安裝php,很少看到先安裝php,後安裝mysql?

這樣做。是基於下面原因:安裝好mysql後。mysql.so這個模塊才能生成。記得一個細節:在安裝php的時候,需要提供mysql的路徑。由php幫助編譯生成mysql.so模塊。mysql.so這個模塊是在安裝好php的時候生成的。

生成這個模塊需要用到一個東西:mysql客戶端。如果先安裝php,後安裝mysql。那麼無法按照原來的方式(由php幫助生成mysql.so模塊)掛接mysql.so。通過實踐,發現使用phpize工具生成mysql.so可以解決這個問題。

二、實踐生成mysql.so的過程。

大體思路:需要用到php的源碼包才行。通過源碼包中提供的phpize文件(一個專門掛接php擴展的工具)

如何在PHP7中安裝mysql的擴展

你好,

1.去php網站上下載mysql擴展,

2.解壓並使用phpize工具初始化,編譯:

#解壓

tar xzvf mysql-45881bd.tar.gz

#進入mysql擴展目錄 from

cd mysql-45881bd/

#使用phpize初始化,我的phpize在/opt/目錄

/opt/php/bin/phpize

#編譯mysql擴展,使用mysql native driver作為mysql鏈接庫

./configure –with-php-config=/opt/php/bin/php-config –with-mysql=mysqlnd

make make install

3.接下來,我們直接編輯php.ini文件,把mysql.so拷貝到php.ini的extension_dir中,然後在php.ini中加入extension=mysql.so

4.重啟php

成功之後,用phpinfo即可看到mysql擴展的信息

如何編譯搭建php7+nginx+mysql

在Windows下配置搭建PHP環境的步驟:

一、準備工作-下載所需軟件

Apache httpd-2.2.22-win32-x86-openssl-0.9.8t.msi

PHP php-5.3.10-Win32-VC9-x86.zip

MySQL mysql-5.5.20-win32.msi

二、安裝軟件

1、安裝Apache: 雙擊安裝,與安裝其他Windows軟件沒有什麼區別,在填Server Infomation時,並沒有特殊規定,只要輸入的信息符合格式即可。

安裝完成之後,在瀏覽器輸入,如果顯示It Works!,表示Apache安裝成功。

2、安裝PHP:將php-5.3.10-Win32-VC9-x86.zip解壓到一個目錄即可。

3、安裝MySQL:雙擊安裝,如果需要更改安裝目錄,則在Choose Setup Type選擇Custom

安裝完成後開始配置MySQL,全部保持默認選項即可,但最好把MySQL默認編碼改為utf8,在Modify Security Settings選項中設置密碼,輸入兩次密碼即可完成,最後點Execute完成配置。

三、整合Apache+PHP+MySQL

Apache : 首先修改Apache的配置文件,讓Apache支持解析PHP文件。Apache配置文件在Apache安裝目錄的conf目錄下的httpd.conf。

1. 讓Apache可以解析php文件,在配置文件中找到

#LoadModule vhost_alias_module modules/mod_vhost_alias.so

在下一行添加 (綠色的位置是根據PHP的所在目錄而定的)

LoadModule php5_module “D:/Develop/PHP/php5apache2_2.dll”PHPIniDir “D:/Develop/PHP”AddType application/x-httpd-php .php .html .htm

2. 在配置文件中找到

DirectoryIndex index.html

改為

DirectoryIndex index.php index.html

3. 修改Apache站點目錄,在配置文件中找到(Apache安裝的目錄不同,顯示的值不一樣)

DocumentRoot “D:/Develop/Apache2.2/htdocs”

改為

DocumentRoot “D:/Workspace/PHP”

再找到

Directory “D:/Develop/Apache2.2/htdocs”

改為

Directory “D:/Workspace/PHP”

PHP : 把php.ini-development改名為php.ini,作為PHP的配置文件。修改php.ini

1. 設置PHP擴展包的具體目錄,找到

; On windows:; extension_dir = “ext”

改為 (值是ext文件夾的目錄)

; On windows: extension_dir = “D:/Develop/PHP/ext”

2. 開啟相應的庫功能,找到需要開啟的庫的所在行

;extension=php_curl.dll

;extension=php_gd2.dll

;extension=php_mbstring.dll

;extension=php_mysql.dll

;extension=php_xmlrpc.dll

去掉前面的分號(注釋),即改為

extension=php_curl.dll

extension=php_gd2.dll

extension=php_mbstring.dll

extension=php_mysql.dll

extension=php_xmlrpc.dll

3. 設置時區,找到

;date.timezone =

改為

date.timezone = Asia/Shanghai

配置完成,檢測一下配置是否成功。重啟Apache,在站點目錄下新建文件index.php,輸入內容。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/244744.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 13:04
下一篇 2024-12-12 13:04

相關推薦

  • 如何修改mysql的端口號

    本文將介紹如何修改mysql的端口號,方便開發者根據實際需求配置對應端口號。 一、為什麼需要修改mysql端口號 默認情況下,mysql使用的端口號是3306。在某些情況下,我們需…

    編程 2025-04-29
  • Python操作MySQL

    本文將從以下幾個方面對Python操作MySQL進行詳細闡述: 一、連接MySQL數據庫 在使用Python操作MySQL之前,我們需要先連接MySQL數據庫。在Python中,我…

    編程 2025-04-29
  • MySQL遞歸函數的用法

    本文將從多個方面對MySQL遞歸函數的用法做詳細的闡述,包括函數的定義、使用方法、示例及注意事項。 一、遞歸函數的定義 遞歸函數是指在函數內部調用自身的函數。MySQL提供了CRE…

    編程 2025-04-29
  • MySQL bigint與long的區別

    本文將從數據類型定義、存儲空間、數據範圍、計算效率、應用場景五個方面詳細闡述MySQL bigint與long的區別。 一、數據類型定義 bigint在MySQL中是一種有符號的整…

    編程 2025-04-28
  • MySQL左連接索引不生效問題解決

    在MySQL數據庫中,經常會使用左連接查詢操作,但是左連接查詢中索引不生效的情況也比較常見。本文將從多個方面探討MySQL左連接索引不生效問題,並給出相應的解決方法。 一、索引的作…

    編程 2025-04-28
  • CentOS 7在線安裝MySQL 8

    在本文中,我們將介紹如何在CentOS 7操作系統中在線安裝MySQL 8。我們會從安裝環境的準備開始,到安裝MySQL 8的過程進行詳細的闡述。 一、環境準備 在進行MySQL …

    編程 2025-04-27
  • 如何使用MySQL字段去重

    本文將從多個方面為您詳細介紹如何使用MySQL字段去重並給出相應的代碼示例。 一、SELECT DISTINCT語句去重 MySQL提供了SELECT DISTINCT語句,通過在…

    編程 2025-04-27
  • MySQL正則表達式替換

    MySQL正則表達式替換是指通過正則表達式對MySQL中的字符串進行替換。在文本處理方面,正則表達式是一種強大的工具,可以方便快捷地進行字符串處理和匹配。在MySQL中,可以使用正…

    編程 2025-04-27
  • Apache2.4和MySQL的全能編程開發工程師指南

    本文將從多個方面對Apache2.4和MySQL進行詳細的闡述,為全能編程開發工程師提供有用的參考和指導。首先,我們來解答這個標題所涵蓋的主題: 本文將提供Apache2.4和My…

    編程 2025-04-27
  • MySQL JDBC驅動包下載詳解

    一、JDBC驅動介紹 JDBC是Java Database Connectivity的縮寫,它是Java應用程序與各種數據庫連接的標準API,允許Java程序員使用JDBC API…

    編程 2025-04-25

發表回復

登錄後才能評論