當前位置:首頁 » 編程語言 » phpmysql56

phpmysql56

發布時間: 2022-06-28 03:26:48

php鏈接Mysql資料庫

如果不是root密碼:
連root的密碼也忘記了嗎?
沒有的話,用root進去,修改mysql資料庫user表咯。

如果是root密碼:

方法一:
MySQL提供跳過訪問控制的命令行參數,通過在命令行以此命令啟動MySQL伺服器:
safe_mysqld --skip-grant-tables&
即可跳過MySQL的訪問控制,任何人都可以在控制台以管理員的身份進入MySQL資料庫。
需要注意的是在修改完密碼以後要把MySQL伺服器停掉重新啟動才會生效

方法二:
可以進行如下的步驟重新設置MySQL的root密碼:
1.首先確認伺服器出於安全的狀態,也就是沒有人能夠任意地連接MySQL資料庫。
因為在重新設置MySQL的root密碼的期間,MySQL資料庫完全出於沒有密碼保護的
狀態下,其他的用戶也可以任意地登錄和修改MySQL的信息。可以採用將MySQL對
外的埠封閉,並且停止Apache以及所有的用戶進程的方法實現伺服器的准安全
狀態。最安全的狀態是到伺服器的Console上面操作,並且拔掉網線。
2.修改MySQL的登錄設置:
# vi /etc/my.cnf
在[mysqld]的段中加上一句:skip-grant-tables
例如:
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
skip-name-resolve
skip-grant-tables
保存並且退出vi。
3.重新啟動mysqld
# /etc/init.d/mysqld restart
Stopping MySQL: [ OK ]
Starting MySQL: [ OK ]
4.登錄並修改MySQL的root密碼
# /usr/bin/mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3 to server version: 3.23.56
Type 『help;』 or 『\h』 for help. Type 『\c』 to clear the buffer.
mysql> USE mysql ;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> UPDATE user SET Password = password ( 『new-password』 ) WHERE User = 『root』 ;
Query OK, 0 rows affected (0.00 sec)
Rows matched: 2 Changed: 0 Warnings: 0
mysql> flush privileges ;
Query OK, 0 rows affected (0.01 sec)
mysql> quit
Bye
5.將MySQL的登錄設置修改回來
# vi /etc/my.cnf
將剛才在[mysqld]的段中加上的skip-grant-tables刪除
保存並且退出vi。
6.重新啟動mysqld
# /etc/init.d/mysqld restart
Stopping MySQL: [ OK ]
Starting MySQL: [ OK ]
windows
1.以系統管理員身份登陸系統。
2.打開cmd—–net start 查看mysql是否啟動。啟動的話就停止net stop mysql.
3.我的mysql安裝在d:\usr\local\mysql4\bin下。
4.跳過許可權檢查啟動mysql.
d:\usr\local\mysql4\bin\mysqld-nt –skip-grant-tables
5.重新打開cmd。進到d:\usr\local\mysql4\bin下:
d:\usr\local\mysql4\bin\mysqladmin -uroot flush-privileges password 「newpassword」
d:\usr\local\mysql4\bin\mysqladmin -u root -p shutdown 這句提示你重新輸密碼。
6.在cmd里net start mysql
7.搞定了。
2,MySQL4.1以上版本一種密碼錯誤問題的解決方法
1 # SET PASSWORD FOR 』some_user』@』some_host』 = OLD_PASSWORD(『newpwd』);
2 # FLUSH PRIVILEGES;
3,Mysql資料庫修復
myisamchk -r -q d:\mysql\data\latin1\*
r代表修復
q代錶快速
d:\mysql\data\latin1\*資料庫裡面 *代表裡面的所有的文件

方法三:
如果你忘記了你的MYSQL的root口令的話,你可以通過下面的過程恢復。
1. 向mysqld server 發送kill命令關掉mysqld server(不是 kill -9),存放進程ID的文件通常在MYSQL的資料庫所在的目錄中。
kill `cat /mysql-data-directory/hostname.pid`
你必須是UNIX的root用戶或者是你所運行的SERVER上的同等用戶,才能執行這個操作。
2. 使用`--skip-grant-tables' 參數來啟動 mysqld。
3. 使用`mysql -h hostname mysql'命令登錄到mysqld server ,用grant命令改變口令。你也可以這樣做:`mysqladmin -h hostname -u user password 'new password''。
(其實也可以用use mysql; update user set password =password('yourpass') where user='root' 來做到。)
4. 載入許可權表: `mysqladmin -h hostname flush-privileges' ,或者使用 SQL 命令`FLUSH PRIVILEGES'。(當然,在這里,你也可以重啟mysqld。)

方法四:(一定要先備份)
1,重新在另一台電腦上安裝相同版本的MySQL
2,刪除忘記密碼的電腦中MySQL安裝目錄中\data\mysql的全部內容(要先停止MySQL服務)
3,Copy新裝的電腦上MySQL安裝目錄中\data\mysql的全部內容 to 剛剛刪除的目錄中
4,啟動MySQL服務

這樣就只有一個root用戶了,密碼為空……

Ⅱ PHP+MYSQL同時插入多條記錄的方法 表 ID 自動遞增 name TEXT 需要一次添加多行數據。

最簡單的方法,LZ可以在提交NAME時每一行後用,區分,類似這種
張三,
李四,
王二麻子
然後提交到PHP文件,$_POST['name']
再用$arr=explode(",",$_POST['name'])截取放入數組,
加個for($i=0;$i<3;$i++){
INSERT ...VALUES('$arr[$i]')...
}
這樣應該OK的,

Ⅲ 求windows下PHP+apache+mysql+zend的完整配置

首先配置環境
第一步:下載安裝的文件
1. MySQL:版本 mysql-5.1.56-win32.msi;
2. Apache: 版本httpd-2.2.17-win32-x86-no_ssl.msi;
3. PHP5.3.5 版本php-5.3.5-Win32-VC6-x86.Zip
4. phpMyadmin 版本phpMyAdmin-3.4.0-beta3-all-languages.7z
5. PHP腳本集成開發環境zendstudio8.0
注意:一定要下載php-5.3.5-Win32-VC6-x86版本的,不要下載php-5.3.5-nts-Win32-VC6-x86版本,更不要下載VC9版本的,因為VC9是專門為IIS定製的,VC6 是為了其他WEB服務軟體提供的,如 Apache。Apache伺服器又有openssl和no_ssl之分,openssl表示帶有openssl模塊,利用openssl可給Apache配置SSL安全鏈接。
第二步:安裝文件
1. 在要安裝的磁碟建一個文件夾(筆者的做法是在D盤的根目錄下創建一個php文件夾D:php)。
2. 安裝Apache伺服器,安裝完成後的目錄結果是:D:phpApache。(就是把Apache伺服器安裝在D:phpApache文件夾里,這個安裝目錄是可以自定義的,是Apache的安裝目錄。)
3. 把下載的php-5.3.5-Win32-VC6-x86解壓的D:php目錄中,可以把文件夾的名字改短,結果D:phpphp5
4. 安裝MySql資料庫,它的安裝和一般情況一樣。筆者把他安裝在(D:phpMySQL)和php同目錄。
第三步:配置PHP5.3.5
1. 配置PHP5.3.5,打開php安裝目錄(筆者是D:phpphp5)可以看到目錄下有兩個這樣的文件php.ini- development和php.ini-proction,第一個是開發使用的配置文件,第二個是標準的生產環境的配置,選擇前者借即可。
2. 選擇php.ini-development復制一份到同目錄下,並改名為php.ini使用文本工具打開。
查找

; On windows:
; extension_dir ="ext"


可以看到兩個; extension_dir ="ext",選擇On windows:下面的那個並去掉前面的分號;,修改為
; On windows:
extension_dir ="d:/php/php5/ext"


表示指定PHP擴展包的具體目錄,以便調用相應的DLL文件。
注釋:網路上有一些配置教程要求把php.ini復制到系統盤的windows文件夾下,筆者經過Windows7下的測試,沒有必要,如果讀者仍有疑慮,也可將php,ini放在windows文件夾下,呵呵。
3.php默認許多功能和擴展是關閉的,默認PHP並不支持自動連接Mysql,需開啟相應的擴展庫功能。查找
;extension=php_curl.dll
;extension=php_gd2.dll
;extension=php_mbstring.dll
;extension=php_mysql.dll
;extension=php_pdo_mysql.dll
;extension=php_pdo_odbc.dll
;extension=php_xmlrpc.dll




把extension前面的分號去掉。
注釋:網路上有些配置的教程是把php/ext內的這幾個DLL文件拷貝到系統盤的system32文件夾下,原理都是一樣的,這里是在php.ini文件中開啟擴展程序,PHP5能夠通過php.ini配置文件的配置自動識別DLL程序擴展,不用多此一舉。
查找short_open_tag = Off把它修改成short_open_tag = On,讓其支持短標簽。
注釋:如果希望載入其他模塊,方法相同,去掉前面的分號。關於PHP的擴展庫問題,我們待會還要討論。
在更新配置時,最好備份php.ini文件,避免不必要的麻煩。
4.配置PHP的Session功能
(對於PHPer新手來說,這一步,以及開啟文件上傳擴展,調整時差問題,一開始可能不太常用,在以後的PHP學習中,在學到Session功能的應用時,相關資料上會有如何配置的介紹,以後霢霂也會更新和PHP配置高級應用的文章。)
在使用session功能時,我們必須配置session文件在伺服器上的保存目錄,否則無法使用session,我們需要在Windows 7上新建一個可讀寫的目錄文件夾,此目錄最好獨立於WEB主程序目錄之外,此處我在D盤根目錄上建立了phpsessiontmp目錄(這個是一定要建的,要不然在啟動phpMyAdmin的時候就會報sesison啟動不了的錯誤),然後在php.ini配置文件中找到

;session.save_path ="/tmp"

改為
session.save_path ="D:/phpsessiontmp"
這一步的配置對於phpadmin的配置是很重要的,phpadmin的設置有一個使用cookie登錄,如果沒有設置就會出錯。大家可以試試。

對於初級的PHPer來說,建立session文件夾只是為了理解session的使用,就是保存網站瀏覽者和用戶的登錄信息,但是對於大型的網站,由於瀏覽量和用戶的數目龐大,要從眾多的用戶session中檢索出某位用戶的信息就變得讓人難以忍受了,這時候就會使用資料庫保存和讀取session了,在session和資料庫的知識里,大家就能學習到相關內容,在這只是為了大家能夠看的明白。
5. 復制php5ts.dll文件到WINDOWS/system32目錄下。這是PHP5配置中簡單而重要的一步,通過php5ts.dl系統就能都識別PHP5的腳本執行程序,並能夠正確的解釋執行PHP腳本。
注釋:只有php-5.3.5-Win32-VC6-x86版本中才有php5ts.dll ,
php-5.3.5-nts-Win32-VC9-x86版本是沒有的。


第四步:配置Apache
1. 打開Apache目錄下conf目錄中的httpd.conf文件,查找#LoadMole,在其末尾處大概是128行的地方(提示,如果讀者找不到128在什麼位置,也沒什麼關系,確切的位置是#LoadMole vhost_alias_mole moles/mod_vhost_alias.so下,也可以下載一個Notepad++,作為文本編輯軟體,也可以用來編輯PHP腳本)
添加:
LoadMole php5_mole"D:/php/php5/php5apache2_2.dll"
PHPIniDir"D:/php/php5"
AddType application/x-httpd-php .php
AddType application/x-httpd-php .htm
AddType application/x-httpd-php .html
目錄結構根據用戶自己目錄配置,在更改配置時最好先備份原文件。
2. 修改具體的index文件先後順序,由於配置了PHP功能,當然需要index.php優先執行
查找DirectoryIndex index.html 將其修改成
DirectoryIndex index.php default.php index.html index.htm default.html default.htm
配置這里是指在打開頁面默認直接打開的頁面,就好像我們登陸網站的主頁,一般打開的都是名為index.php或者index.html的頁面。
3. 我們知道Apache默認伺服器執行WEB主程序的目錄為Apache2.2/htdocs ,所以當你的WEB主程序目錄變更時,我們需要修改相應的Apache配置,查找DocumentRoot將其修改為指向你需要放置web文件的文件夾上(筆者在D:/php目錄中創建了一個www文件夾)所以DocumentRoot就是DocumentRoot"D:/php/www",讀者可以根據自己配置來修改。
在安裝Mysql時,也會出現提示,讓讀者選擇資料庫文件的存放位置,為了防止開發網站程序後期,上傳網站程序時(一般自己建站都是租用虛擬主機)出現不必要的麻煩,建議把資料庫表文件放在與PHP網頁源碼同一級的文件夾中,例如D:/php/SQldata。
4. 查找<Directory將其修改為你自己配置的DocumentRooot的路徑(筆者是<Directory"D:/php/www">)

第五步:測試php+Apache+MySql是否配置成功
1. 打開MySql在MySql中創建一個新資料庫和表。(筆者是userInfo資料庫和users表就有id和name兩個欄位)
測試嗎?簡單就好,呵呵!!
2. 在上面創建的www文件夾中創建一個index.php文件使用EditPlus(又一個文本編輯器)或者其他文本工具打開。
3. 寫入:代碼如下:
<?
$DB_HOST ="localhost";
$DB_USER ="root";
$DB_PASS ="root";
$DB_NAME ="userInfo";
mysql_connect($DB_HOST,$DB_USER,$DB_PASS);
mysql_select_db($DB_NAME);
mysql_query("set NAMES gb2312");
$sql ="Select * From users";
$result = mysql_query($sql);
while($data=mysql_fetch_array($result)){
echo"------------------------";
echo $data['id']."<br/>";
echo $data['name']."<br/>";
}
mysql_close();
?>
說明 set NAMES gb2312 這個和mysql的資料庫編碼一致,如果server的編碼是utf8,那這個也要用utf8的。
注釋:關於測試的代碼還有很多,但是都大同小異……
筆者在這里再介紹兩個源碼,分別這是PHP配置和Mysql資料庫是否關聯成功
源碼1:PHP5配置相關信息
<?php
phpinfo();
?>
源碼2:Mysql資料庫是否關聯成功
<?php
$link=mysql_connect("127.0.0.1","root","pwd");
//root為默認資料庫用戶名,pwd是你設置的資料庫密碼,如果使用127.0.0.1
//無法登錄Mysql,打開C:WindowsSystem32driversetc下的hosts文件,
//查看 將 # 127.0.0.1 localhost的#號去掉。
if($link!=false)
{
echo"成功連接mysql伺服器";
}
else
{
echo"與本地Mysql伺服器連接失敗";
}
mysql_close();
?>
4.啟動Apache伺服器,在瀏覽器輸入http://localhost/回車。
如果進入相關頁面,可以看到PHP的配置信息Mysql鏈接成功的頁面:表示我們大功告成了!祝賀祝賀!
注釋:PHP對中文支持不好,文件名和文件夾名最好用字母或英文。



第六步配置phpMyadmin
Phpadmin是使用PHP腳本編寫的Mysql資料庫圖形化管理軟體,應用簡單普遍。
phpMyAdmin 默認下載後,需要進行安裝配置後,才可以正常使用。安裝配置phpMyAdmin軟體,只要把握幾個要點,進行起來就很簡單了。下面,就是我常用的配置方法。
前提條件:
網站根目錄:D:wwwhost
PHP根目錄:D:wwwphp5
MySQL根目錄:D:wwwmysql
phpMyAdmin根目錄:D:wwwhostphpmyadmin
1. 首先解壓phpMyAdmin-3.4.0-beta3-all-languages.7z,然後重命名為phpmyadmin,將其復制到php腳本的WEB主程序目錄下,我復制到D:www目錄下。
2. 從「D:wwwhostphpmyadminlibraries」目錄下找到「config.default.php」。
使用zendstudio8.0打開(如果你安裝了這個PHP安裝環境的話,zendstudio8.0是大家公認的最好的PHP腳本的集成開發工具),查找以下信息,並做出相應更改。
$cfg['PmaAbsoluteUri'] = '';改為$cfg['PmaAbsoluteUri'] = 'http://localhost/phpmyadmin/';
說明:定義PHPMYADMIN位置,一般來說應該是(http://localhost/phpmyadmin/)本地測試填寫:localhost,phpadmin就是phpMyadmin在php的主目錄下的文件夾名字;

伺服器測試填寫:ip or domain,即你的網站的域名。
$cfg['Servers'][$i]['host'] = '';改為$cfg['Servers'][$i]['host'] = 'localhost';
(說明:默認無需修改)
$cfg['Servers'][$i]['user'] = '';改為$cfg['Servers'][$i]['user'] = 'root';
說明:默認網站資料庫用戶名
$cfg['Servers'][$i]['password'] = '';
改為$cfg['Servers'][$i]['password'] = '****';
說明:輸入你資料庫的密碼
$cfg['blowfish_secret'] = '';改為$cfg['blowfish_secret'] = 'cookie';
說明:本地無需設置,網路需設成cookie
$cfg['Servers'][$i]['auth_type'] = 'config';改為$cfg['Servers'][$i]['auth_type'] = 'cookie';
說明:網路須啟用cookie來防止惡意注入
$cfg['blowfish_secret'] = '';改為$cfg['blowfish_secret'] = 'cookie';
3.網路上相關教程,大多會讓大家把從「D:wwwhostphpmyadminlibraries」下拷貝一份「config.default.php」到「D:wwwhostphpmyadmin」下,重命名為「config.inc.php」,那些事phpMyadmin3以前的的版本的配置方法,在phpMyadmin3發布以後,就不需要這樣做了,只要修改libraries/config.default.php配置文件的配置項即可。這是因為phpmyadmin現在的版本默認首先載入libraries/config.default.php配置文件的內容,如果有config.inc.php,就會在config.inc.php配置文件中找到相同的變數並覆蓋,所以如果沒有特別的設定,你不需要再去創建一個config.inc.php,只要在libraries/config.default.php進行相關的配置即可。
4.關於短語密碼的問題。現在phpMyadmin版本可以不用設置短語密碼了。

測試為:
在瀏覽器上輸入:http://localhost/phpmyadmin/index.php, 出現 登錄界面,輸入mysql的用戶名和密碼,就可以進去了。

配置Zend Framework環境
比如你的httpd.conf的配置如下:

<virtualHost *:80>
ServerName www.example.com
DocumentRoot "C:/example"
<Directory "C:/example">
AllowOverride all
Order Deny, Allow
</Directory>
</virtualHost>

關鍵的是需要在example的根目錄下面添加一個目錄:

.htaccess,這個是用來進行處理所有到該目錄下面的請求:

SetEnv DEBUG_ENV TRUE

RewriteEngine On

RewriteCond &{REQUEST_FILENAME} -s [0R]
RewriteCond &{REQUEST_FILENAME} -l [0R]
RewriteCond &{REQUEST_FILENAME} -d
RewriteCond ^.*$ - [NC,L]

RewriteRule ^.*$ index.php [NC,L]

這樣在index.php中配置需要的環境,比如:

<?php

// 定義應用程序當前是否為調試模式
defined('DEBUG')
|| define('DEBUG', (getenv('DEBUG_ENV') == 'TRUE' ? true : false));

// 定義應用程序根目錄
defined('PROJECT_PATH')
|| define('PROJECT_PATH', dirname(dirname(dirname(__FILE__))));

// 定義系統配置文件路徑
defined('APPLICATION_CONFIG_INI')
|| define('APPLICATION_CONFIG_INI', PROJECT_PATH . '/applications/example/config/application.ini');

// 重新定義PHP默認搜索目錄
set_include_path(implode(PATH_SEPARATOR, array(
PROJECT_PATH . '/library',
PROJECT_PATH . '/models',
get_include_path()
)));

// echo get_include_path();exit;

// 調試模式時開啟錯誤輸出
if (DEBUG) {
error_reporting(E_ALL);
ini_set('display_errors', true);
} else {
error_reporting(8191);
}

// 設置時區
date_default_timezone_set('Asia/Shanghai');

// 啟動Light類庫自動載入功能
require_once 'Light/Loader.php';
Light_Loader::autoLoad();

// 載入配置文件
//require_once 'Hexin/Config/Ini.php';
$appcfg = new Hexin_Config_Ini(APPLICATION_CONFIG_INI, !DEBUG);
require_once 'Zend/Registry.php';
Zend_Registry::set('appcfg', $appcfg->read());

// 記錄整個響應所消耗的時間
$clock = Light_Debug_Clock::getInstance();
ob_start();

// 路由分發請求
$frontController = Light_Controller_Front::getInstance()
->enableAutoRender()
->setMolePath(PROJECT_PATH . '/applications')
->setRouter(new Light_Router_Rewrite())
->registerPlugin(new example_Controller_Plugin_Auth())
->dispatch();

// 輸出整個響應所消耗的時間(Head頭方式)
$clock->storage('Dispatch');
ob_end_flush();

Ⅳ mongodb 請問php中的這句mysql語法,在mongodb中如何寫。

查詢:
MySQL:
SELECT * FROM user
Mongo:
db.user.find()
MySQL:
SELECT * FROM user WHERE name = 'starlee'
Mongo:
db.user.find({『name' : 'starlee'})
插入:
MySQL:
INSERT INOT user (`name`, `age`) values ('starlee',25)
Mongo:
db.user.insert({『name' : 'starlee', 『age' : 25})
如果你想在MySQL里添加一個欄位,你必須:
ALTER TABLE user….
但在MongoDB里你只需要:
db.user.insert({『name' : 'starlee', 『age' : 25, 『email' : '[email protected]'})
刪除:
MySQL:
DELETE * FROM user
Mongo:
db.user.remove({})
MySQL:
DELETE FROM user WHERE age < 30
Mongo:
db.user.remove({『age' : {$lt : 30}})
$gt : > ; $gte : >= ; $lt : < ; $lte : <= ; $ne : !=
更新:
MySQL:
UPDATE user SET `age` = 36 WHERE `name` = 'starlee'
Mongo:
db.user.update({『name' : 'starlee'}, {$set : {『age' : 36}})
MySQL:
UPDATE user SET `age` = `age` + 3 WHERE `name` = 'starlee'
Mongo:
db.user.update({『name' : 'starlee'}, {$inc : {『age' : 3}})
MySQL:
SELECT COUNT(*) FROM user WHERE `name` = 'starlee'
Mongo:
db.user.find({『name' : 'starlee'}).count()
MySQL:
SELECT * FROM user limit 10,20
Mongo:
db.user.find().skip(10).limit(20)
MySQL:
SELECT * FROM user WHERE `age` IN (25, 35,45)
Mongo:
db.user.find({『age' : {$in : [25, 35, 45]}})
MySQL:
SELECT * FROM user ORDER BY age DESC
Mongo:
db.user.find().sort({『age' : -1})
MySQL:
SELECT DISTINCT(name) FROM user WHERE age > 20
Mongo:
db.user.distinct(『name', {『age': {$lt : 20}})
MySQL:
SELECT name, sum(marks) FROM user GROUP BY name
Mongo:
db.user.group({
key : {『name' : true},
cond: {『name' : 『foo'},
rece: function(obj,prev) { prev.msum += obj.marks; },
initial: {msum : 0}
});
MySQL:
SELECT name FROM user WHERE age < 20
Mongo:
db.user.find(『this.age < 20′, {name : 1})
發現很多人在搜MongoDB循環插入數據,下面把MongoDB循環插入數據的方法添加在下面:
for(var i=0;i<100;i++)db.test.insert({uid:i,uname:'nosqlfan'+i});
上面一次性插入一百條數據,大概結構如下:
{ 「_id」 : ObjectId(「4c876e519e86023a30dde6b8″), 「uid」 : 55, 「uname」 : 「nosqlfan55″ }
{ 「_id」 : ObjectId(「4c876e519e86023a30dde6b9″), 「uid」 : 56, 「uname」 : 「nosqlfan56″ }
{ 「_id」 : ObjectId(「4c876e519e86023a30dde6ba」), 「uid」 : 57, 「uname」 : 「nosqlfan57″ }
{ 「_id」 : ObjectId(「4c876e519e86023a30dde6bb」), 「uid」 : 58, 「uname」 : 「nosqlfan58″ }
{ 「_id」 : ObjectId(「4c876e519e86023a30dde6bc」), 「uid」 : 59, 「uname」 : 「nosqlfan59″ }
{ 「_id」 : ObjectId(「4c876e519e86023a30dde6bd」), 「uid」 : 60, 「uname」 : 「nosqlfan60″ }
簡易對照表
SQL Statement Mongo Query Language Statement
CREATE TABLE USERS (a Number, b Number) implicit; can be done explicitly
INSERT INTO USERS VALUES(1,1) db.users.insert({a:1,b:1})
SELECT a,b FROM users db.users.find({}, {a:1,b:1})
SELECT * FROM users db.users.find()
SELECT * FROM users WHERE age=33 db.users.find({age:33})
SELECT a,b FROM users WHERE age=33 db.users.find({age:33}, {a:1,b:1})
SELECT * FROM users WHERE age=33 ORDER BY name db.users.find({age:33}).sort({name:1})
SELECT * FROM users WHERE age>33 db.users.find({'age':{$gt:33}})})
SELECT * FROM users WHERE age<33 db.users.find({'age':{$lt:33}})})
SELECT * FROM users WHERE name LIKE "%Joe%" db.users.find({name:/Joe/})
SELECT * FROM users WHERE name LIKE "Joe%" db.users.find({name:/^Joe/})
SELECT * FROM users WHERE age>33 AND age<=40 db.users.find({'age':{$gt:33,$lte:40}})})
SELECT * FROM users ORDER BY name DESC db.users.find().sort({name:-1})
CREATE INDEX myindexname ON users(name) db.users.ensureIndex({name:1})
CREATE INDEX myindexname ON users(name,ts DESC) db.users.ensureIndex({name:1,ts:-1})
SELECT * FROM users WHERE a=1 and b='q' db.users.find({a:1,b:'q'})
SELECT * FROM users LIMIT 10 SKIP 20 db.users.find().limit(10).skip(20)
SELECT * FROM users WHERE a=1 or b=2 db.users.find( { $or : [ { a : 1 } , { b : 2 } ] } )
SELECT * FROM users LIMIT 1 db.users.findOne()
EXPLAIN SELECT * FROM users WHERE z=3 db.users.find({z:3}).explain()
SELECT DISTINCT last_name FROM users db.users.distinct('last_name')
SELECT COUNT(*y) FROM users db.users.count()
SELECT COUNT(*y) FROM users where AGE > 30 db.users.find({age: {'$gt': 30}}).count()
SELECT COUNT(AGE) from users db.users.find({age: {'$exists': true}}).count()
UPDATE users SET a=1 WHERE b='q' db.users.update({b:'q'}, {$set:{a:1}}, false, true)
UPDATE users SET a=a+2 WHERE b='q' db.users.update({b:'q'}, {$inc:{a:2}}, false, true)
DELETE FROM users WHERE z="abc" db.users.remove({z:'abc'});
###################################################
一、操作符
操作符相信大家肯定都知道了,就是等於、大於、小於、不等於、大於等於、小於等於,但是在mongodb里不能直接使用這些操作符。在mongodb里的操作符是這樣表示的:
(1) $gt > (大於)
(2) $lt< (小於)
(3) $gte>= (大於等於)
(4) $lt<= (小於等於)
(5) $ne!= (不等於)
(6) $inin (包含)
(7) $ninnot in (不包含)
(8) $existsexist (欄位是否存在)
(9) $inc對一個數字欄位field增加value
(10) $set就是相當於sql的set field = value
(11) $unset就是刪除欄位
(12) $push把value追加到field裡面去,field一定要是數組類型才行,如果field不存在,會新增一個數組類型加進去
(13) $pushAll同$push,只是一次可以追加多個值到一個數組欄位內
(14) $addToSet增加一個值到數組內,而且只有當這個值不在數組內才增加。
(15) $pop刪除最後一個值:{ $pop : { field : 1 } }刪除第一個值:{ $pop : { field : -1 } }注意,只能刪除一個值,也就是說只能用1或-1,而不能用2或-2來刪除兩條。mongodb 1.1及以後的版本才可以用
(16) $pull從數組field內刪除一個等於value值
(17) $pullAll同$pull,可以一次刪除數組內的多個值
(18) $ 操作符是他自己的意思,代表按條件找出的數組裡面某項他自己。這個比較坳口,就不說了。
二、CURD 增、改、讀、刪
增加

復制代碼代碼如下:

db.collection->insert({'name' => 'caleng', 'email' => 'admin#admin.com'});

是不是灰常簡單呀,對就是這么簡單,它沒有欄位的限制,你可以隨意起名,並插入數據

復制代碼代碼如下:

db.collection.update( { "count" : { $gt : 1 } } , { $set : { "test2" : "OK"} } ); 只更新了第一條大於1記錄
db.collection.update( { "count" : { $gt : 3 } } , { $set : { "test2" : "OK"} },false,true ); 大於3的記錄 全更新了
db.collection.update( { "count" : { $gt : 4 } } , { $set : { "test5" : "OK"} },true,false ); 大於4的記錄 只加進去了第一條
db.collection.update( { "count" : { $gt : 5 } } , { $set : { "test5" : "OK"} },true,true ); 大於5的記錄 全加進去

查詢

復制代碼代碼如下:

db.collection.find(array('name' => 'ling'), array('email'=>'[email protected]'))
db.collection.findOne(array('name' => 'ling'), array('email''[email protected]'))

大家可以看到查詢我用了兩種不同的寫法,這是為什麼,其實這跟做菜是一樣的,放不同的調料,炒出的菜是不同的味道。下面給大家說一下,這兩種調料的不同作用。
findOne()只返回一個文檔對象,find()返回一個集合列表。
也就是說比如,我們只想查某一條特定數據的詳細信息的話,我們就可以用findOne();
如果想查詢某一組信息,比如說一個新聞列表的時候,我們就可以作用find();
那麼我想大家這時一定會想到我想對這一個列表排序呢,no problem mongodb會為您全心全意服務

復制代碼代碼如下:

db.collection.find().sort({age:1}); //按照age正序排列
db.collection.find().sort({age:-1}); //按照age倒序排列
db.collection.count(); //得到數據總數
db.collection.limit(1); //取數據的開始位置
db.collection.skip(10); //取數據的結束位置
//這樣我們就實現了一個取10條數據,並排序的操作。

刪除
刪除有兩個操作 remove()和drop()

復制代碼代碼如下:

db.collection.remove({"name",'jerry'}) //刪除特定數據
db.collection.drop() //刪除集合內的所有數據

distinct操作

復制代碼代碼如下:

db.user.distinct('name', {'age': {$lt : 20}})

2. 熟悉MongoDB的數據操作語句,類sql
資料庫操作語法
mongo --path
db.AddUser(username,password) 添加用戶
db.auth(usrename,password) 設置資料庫連接驗證
db.cloneDataBase(fromhost) 從目標伺服器克隆一個資料庫
db.commandHelp(name) returns the help for the command
db.Database(fromdb,todb,fromhost) 復制資料庫fromdb---源資料庫名稱,todb---目標資料庫名稱,fromhost---源資料庫伺服器地址
db.createCollection(name,{size:3333,capped:333,max:88888}) 創建一個數據集,相當於一個表
db.currentOp() 取消當前庫的當前操作
db.dropDataBase() 刪除當前資料庫
db.eval(func,args) run code server-side
db.getCollection(cname) 取得一個數據集合,同用法:db['cname'] or db.cname
db.getCollenctionNames() 取得所有數據集合的名稱列表
db.getLastError() 返回最後一個錯誤的提示消息
db.getLastErrorObj() 返回最後一個錯誤的對象
db.getMongo() 取得當前伺服器的連接對象get the server connection object
db.getMondo().setSlaveOk() allow this connection to read from then nonmaster membr of a replica pair
db.getName() 返回當操作資料庫的名稱
db.getPrevError() 返回上一個錯誤對象
db.getProfilingLevel() ?什麼等級
db.getReplicationInfo() ?什麼信息
db.getSisterDB(name) get the db at the same server as this onew
db.killOp() 停止(殺死)在當前庫的當前操作
db.printCollectionStats() 返回當前庫的數據集狀態
db.printReplicationInfo()
db.printSlaveReplicationInfo()
db.printShardingStatus() 返回當前資料庫是否為共享資料庫
db.removeUser(username) 刪除用戶
db.repairDatabase() 修復當前資料庫
db.resetError()
db.runCommand(cmdObj) run a database command. if cmdObj is a string, turns it into {cmdObj:1}
db.setProfilingLevel(level) 0=off,1=slow,2=all
db.shutdownServer() 關閉當前服務程序
db.version() 返回當前程序的版本信息
數據集(表)操作語法
db.linlin.find({id:10}) 返回linlin數據集ID=10的數據集
db.linlin.find({id:10}).count() 返回linlin數據集ID=10的數據總數
db.linlin.find({id:10}).limit(2) 返回linlin數據集ID=10的數據集從第二條開始的數據集
db.linlin.find({id:10}).skip(8) 返回linlin數據集ID=10的數據集從0到第八條的數據集
db.linlin.find({id:10}).limit(2).skip(8) 返回linlin數據集ID=1=的數據集從第二條到第八條的數據
db.linlin.find({id:10}).sort() 返回linlin數據集ID=10的排序數據集
db.linlin.findOne([query]) 返回符合條件的一條數據
db.linlin.getDB() 返回此數據集所屬的資料庫名稱
db.linlin.getIndexes() 返回些數據集的索引信息
db.linlin.group({key:...,initial:...,rece:...[,cond:...]})
db.linlin.mapRece(mayFunction,receFunction,<optional params>)
db.linlin.remove(query) 在數據集中刪除一條數據
db.linlin.renameCollection(newName) 重命名些數據集名稱
db.linlin.save(obj) 往數據集中插入一條數據
db.linlin.stats() 返回此數據集的狀態
db.linlin.storageSize() 返回此數據集的存儲大小
db.linlin.totalIndexSize() 返回此數據集的索引文件大小
db.linlin.totalSize() 返回些數據集的總大小
db.linlin.update(query,object[,upsert_bool]) 在此數據集中更新一條數據
db.linlin.validate() 驗證此數據集
db.linlin.getShardVersion() 返回數據集共享版本號

Ⅳ 怎麼安裝PHP環境

LAMP/LNMP 環境搭建

一.檢查系統環境

1.確認centos版本

[root@localhost ~]# cat /etc/redhat-release

2.檢查是否安裝過apache

rpm -qa | grep httpd

或者:

apachectl -v

或者:

httpd -v

3.檢查是否安裝過Mysql

service mysqld start

如果未被識別則沒有安裝

如果系統安裝過,或者安裝失敗,清理一下系統

4.清理Mysql痕跡

yum remove mysql

rm -f /etc/my.cnf

5.卸載Apache包

rpm -qa|grep httpd

注意:如果是新的系統或者你從來沒有嘗試安裝過,則以上步驟省略

二.安裝Apache、PHP、Mysql

停止防火牆服務

[root@localhost ~]# systemctl stop firewalld.service

禁用防火牆開機啟動服務

[root@localhost ~]# systemctl disable firewalld.service

1.安裝apache

[root@localhost ~]# yum -y install httpd

2.安裝php

[root@localhost ~]# yum -y install php

3.安裝php-fpm

[root@localhost ~]# yum -y install php-fpm

4.安裝Mysql

[root@localhost ~]# yum -y install mysql

5.安裝 mysql-server

[root@localhost ~]# yum install mariadb-server

CentOS 7+ 版本將MySQL資料庫軟體從默認的程序列表中移除,用mariadb代替了,entos7配置教程上,大多都是安裝mariadb,因為centos7默認將mariadb視作mysql。

因為mysql被oracle收購後,原作者擔心mysql閉源,所以又寫了一個mariadb,這個資料庫可以理解為mysql的分支。如果需要安裝mariadb,只需通過yum就可。

6.安裝 php-mysql

[root@localhost ~]# yum -y install php-mysql

三.安裝基本常用擴展包

1.安裝Apache擴展包

yum -y install httpd-manual mod_ssl mod_perl mod_auth_mysql

2.安裝PHP擴展包

yum -y install php-gd php-xml php-mbstring php-ldap php-pear php-xmlrpc php-devel

3.安裝Mysql擴展包

yum -y install mysql-connector-odbc mysql-devel libdbi-dbd-mysql

四.配置Apache、mysql開機啟動

重啟Apache、mysql服務(注意這里和centos6有區別,Cenots7+不能使用6的方式)

systemctl start httpd.service #啟動apache

systemctl stop httpd.service #停止apache

systemctl restart httpd.service #重啟apache

systemctl enable httpd.service #設置apache開機啟動

重啟資料庫

#啟動MariaDB

[root@localhost ~]# systemctl start mariadb.service

#停止MariaDB

[root@localhost ~]# systemctl stop mariadb.service

#重啟MariaDB

[root@localhost ~]# systemctl restart mariadb.service

#設置開機啟動

[root@localhost ~]# systemctl enable mariadb.service

五.配置Mysql

初次安裝mysql是沒有密碼的,我們要設置密碼,mysql的默認賬戶為root

方式1:設置 MySQL 數據 root 賬戶的密碼:

[root@localhost ~]# mysql_secure_installation

當出現如下提示時候直接按回車:

Enter current password for root

出現如下再次回車:

Set root password? [Y/n]

出現如下提示輸入你需要設置的密碼,這里輸入了root,輸入密碼是不顯示的,回車後再輸入一次確認:

New password:

接下來還會有四個確認,分別是:

Remove anonymous users? [Y/n]

Disallow root login remotely? [Y/n]

Remove test database and access to it? [Y/n]

Reload privilege tables now? [Y/n]

直接回車即可。

方式2:進入mysql mysql -r

修改mysql密碼:set password for 'root'@'localhost'=password('root');

mysql授權遠程連接(navicat等): grant all on *.* to root identified by 'root';

六.測試環境

我們在瀏覽器地址欄輸入http://ip/,正常顯示,說明我們的lamp 環境搭建成功

七.安裝nginx

yum install yum-priorities -y

wget http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

rpm -ivh nginx-release-centos-7-0.el7.ngx.noarch.rpm

yum install nginx

Nginx 版本號可變更http://nginx.org/packages/centos/7/noarch/RPMS/$版本

八.配置nginx

1.nginx啟動,停止,重啟

systemctl start nginx.service #啟動nginx

systemctl stop nginx.service #停止

systemctl restart nginx.service #重啟

systemctl enable nginx.service #設置開機啟動

  • 更改nginx埠號(根據自己需求)

  • cd /etc/nginx/conf.d/

    vim default.conf

    把listen 80改成listen 81

    3.訪問http://ip:81即可看到nginx首頁

    安裝完成訪問時候需要啟動php-fpm,不重啟訪問會出現下載文件,重啟命令如下

    systemctl start php-fpm.service #啟動php-fpm

    systemctl enable php-fpm.service #設置開機啟動

    4.更改nginx配置文件識別php

    vi /etc/nginx/conf.d/default.conf,把之前的#給去掉就可以了,順手改一下

    location ~ .php$ {

    root html;

    fastcgi_pass 127.0.0.1:9000;

    fastcgi_index index.php;

    fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html/$fastcgi_script_name;

    include fastcgi_params;

    }

    方法二 安裝nginx

    yum install nginx

    啟動nginx,並設置為開機啟動

    systemctl start nginx

    systemctl enable nginx

5.在 /usr/share/nginx/html中新建一個test.php

訪問http://ip:81/test.php即可看到php頁面

修改完成配置記得啟動apache 和php-fpm 哦!

九.負載配置

upstream site{

server 172.16.170.138;

server 172.16.170.139;

}

server {

listen 80;

server_name localhost;

#charset koi8-r;

#access_log /var/log/nginx/log/host.access.log main;

location / {

root /usr/share/nginx/html;

index index.html index.htm;

proxy_pass http://site;

}

apache 默認目錄 /var/www/html

nginx 默認目錄 /usr/share/nginx/html

升級php版本

centos7 默認安裝php是5.4

查看yum的可安裝的php版本列表

yum provides php

開始升級PHP更新源:

rpm -Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm

rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

yum remove php-common -y #移除系統自帶的php-common

php72版本

yum install -y php72w php72w-opcache php72w-xml php72w-mcrypt php72w-gd php72w-devel php72w-mysql php72w-intl php72w-mbstring

php56版本

yum install -y php56w php56w-opcache php56w-xml php56w-mcrypt php56w-gd php56w-devel php56w-mysql php56w-intl php56w-mbstring #安裝依賴包

查看php版本

php -v

安裝php fpm:

yum install php72w-fpm

yum provides php-fpm #因為我是准備搭建lnmp,所以安裝php-fpm,這里會提示多個安裝源,選擇5.6版本的安裝就可以了

yum install php56w-fpm-5.6.31-1.w7.x86_64 -y

systemctl start php-fpm.service 【啟動】

systemctl enable php-fpm.service【開機自啟動】

CentOS yum有時出現「Could not retrieve mirrorlist 」的解決辦法——resolv.conf的配置

原因:沒有配置resolv.conf

解決方法:

到/etc目錄下配置resolv.conf加入nameserver IP,如:

nameserver 8.8.8.8

nameserver 8.8.4.4

search localdomain

保存再次運行上面的命令就可以。

https://blog.csdn.net/mao834099514/article/details/73470001

nginx目錄 : /usr/share/nginx/html

/etc/nginx/conf.d/default.conf nginx配置目錄

apache目錄 : /var/www/html

/etc/httpd/conf/httpd.conf apache配置文件

nginx 配置域名

cd /etc/nginx

cp default.conf imooc.conf

修改server_name imooc.test.com 以及項目目錄

配置虛擬域名 windows 訪問需要在host增加 linuxip

ServerName www.nine.com

DocumentRoot "/var/www/html/learnlaravel/public"

Options Indexes FollowSymLinks

AllowOverride All

Require all granted

關閉防火牆

setenforce 0

Ⅵ PHP+mysql查詢問題

select
SUBSTRING_INDEX(group_concat(aid order by aid desc), ',',1)
,did, SUBSTRING_INDEX(group_concat(zyadd order by aid desc), ',',1),
SUBSTRING_INDEX(group_concat(name order by aid desc ), ',',1)
SUBSTRING_INDEX(group_concat(status order by aid desc), ',',1)
from table group by did

Ⅶ PHP mysql 怎麼樣只保留100條信息

1.每次插入前,你先用count獲取當前總條數,最早錄入時間,用group by一個語句就可以實現了。
2.當總條數小於100,直接新增。
3.當用條數大於等於100,根據剛才返回的最早錄入時間刪除此記錄,再新增。

Ⅷ 實現功能:MySQL+php實現新聞列表以及瀏覽功能,簡單就可以,謝謝了!!!

For a description of your Implementation features: MySQL php achieving News and browsing, simple can be ...,
如有進一步需求,請我們聯系,
給我留一個你的問題和Email,
有時間可以幫你,絕對救急,
請用BaiHi為我留言,
此回復針對所有來訪者和需求者有效,
ES:\\

Ⅸ 花生殼伺服器怎麼部署php+mysql+nginx網站

國內使用 Nginx 作為 Web 伺服器的網站也越來越多,其中包括新浪博客、新浪播客、網易新聞、騰訊網、搜狐博客等門戶網站頻道,六間房、56.com等視頻分享網站,Discuz!官方論壇、水木社區等知名論壇,盛大在線、金山逍遙網等網路游戲網站,豆瓣、人人網、YUPOO相冊、金山愛詞霸、迅雷在線等新興Web 2.0網站。

Ⅹ php 論壇連不上mysql資料庫

SQL: SELECT type FROM [Table]usergroups WHERE groupid='7'
Error: Table 'heying.[Table]usergroups' doesn't exist

這段話已經很明確的告訴你了,資料庫中不存在這個表,當然原因有兩個:
1,PHP連接MYSQL的原因,你單獨用PHPMyadmin測試一下看用戶名和密碼是不是對的,這個很重要,因為復雜問題往往是出現在很弱智的環節
2,實際上真的不存在這個表,呵呵,當然這是由你的安裝程序來決定的,PHP安裝網站程序會自動創建表,如果沒有建立,當然是錯誤的

打完收工.祝你好運伙計

熱點內容
安卓哪個國家免費用 發布:2025-02-04 22:39:54 瀏覽:60
電腦配置低但想玩小偷模擬器怎麼辦 發布:2025-02-04 22:39:03 瀏覽:234
最快腳本語言 發布:2025-02-04 22:27:23 瀏覽:527
安卓的人臉識別在哪裡 發布:2025-02-04 22:16:45 瀏覽:674
悠然伺服器的ip是什麼 發布:2025-02-04 22:10:17 瀏覽:65
3des源碼 發布:2025-02-04 22:09:16 瀏覽:809
如何備份資料庫表 發布:2025-02-04 22:09:07 瀏覽:294
如何刪除下載的鬧鍾鈴聲安卓 發布:2025-02-04 22:03:35 瀏覽:660
死神腳本 發布:2025-02-04 21:57:03 瀏覽:169
phpposthtml 發布:2025-02-04 21:37:46 瀏覽:89