phpmysqldb
樓主 試著把寫成 $sql="DELETE FROM table_2 WHERE xm='$_POST[xsxm]'";
應該就可以了,記著$_POST中的 POST 是大寫的。
❷ php申明內部變數,可在函數內使用不能這樣寫嗎
<?php
classdbHelp{
var$mysqldb;
//這里的是類成員變數,在這里的變數只能直接賦值或不賦值,但不能對變數值進行任何邏輯運算和數學運算
functionopenDB(){
$mysqldb=mysql_connect('....');//這樣寫也不是不可以,但這樣寫的話,就是函數方法的內部變數,或者說是局部變數,未曾改變函數外的任何值,函數外也無法訪問這個值
}
}
//下面寫兩個簡單的例子說明
classa{
var$b=10;
functionc(){
$b=20;
}
functiond(){
echo$b;
}
}
$f=newa;
$f->c();
$f->d();
//上面代碼將無任何輸出,因為方法d中的變數$b沒有任何值,也未曾改變過!
classa{
var$b=10;
functionc(){
$b=20;
}
functiond(){
echo$this->b;
}
}
$f=newa;
$f->c();
$f->d();
//上面代碼將輸出10,因為方法b是輸出了類成員變數,而不是類方法內部函數
classa{
var$b=10;
functionc(){
$this->b=20;
}
functiond(){
echo$b;
}
}
$f=newa;
$f->c();
$f->d();
//上面代碼會輸出20,因為方法d中輸出了類成員變數,並且該類成員變數在方法c中改變了
//關鍵在於$this這里
❸ PHP下使用mysqli的函數連接mysql出現warning: mysqli::real_connect(): (hy000/1040): ...
背景:把mysql換成mysqli時出現,連接數過多,其實際上並不是,原因是我挪動了一下php的sock文件位置導致,因這幾個socket修改沒有修改完全,於是出現了too
many
connections
,從mysql里show
processlist並沒有發現真的有連接,其實用tshark抓下包估計能看到(http://justwinit.cn/post/7458/),並沒有發出請求,而估計是mysqli的客戶端自己報出來的,別看這個問題小,搞了老半天,都想重新安裝Php了,發現原來是路徑寫錯了同時mysqli的客戶端提示連接數過多的誤提示導致方向走錯了。如下:
[root@iZ25z0ugwgtZ
etc]#
grep
-r
"mysql.sock"
./
./php.ini:pdo_mysql.default_socket=/data/runsock/mysqlsock/mysql.sock
./php.ini:;mysql.default_socket
=
/tmp/mysql.sock
./php.ini:mysql.default_socket
=
/data/runsock/mysqlsock/mysql.sock
./php.ini:mysqli.default_socket
=
/data/runsock/mysql.sock
//這個位置被挪動到,/data/runsock/mysqlsock/mysql.sock導致。
修改後記得重啟動php-fpm:
[root@iZ25z0ugwgtZ
etc]#
service
php-fpm
restart
Gracefully
shutting
down
php-fpm
.
done
Starting
php-fpm
done
______________________排查要點如下_______________________________
warning:
mysqli::real_connect():
(hy000/1040):
too
many
connections
in:
出現場景
:手動編譯安裝mysql,並制定安裝位置,php以localhost方式連接mysql
原因分析
:手動編譯安裝制定位置後所有的mysql文件都在制定的目錄或者data目錄下面,php默認只會尋找/temp/mysql.sock找這個sock文件,所以會導致sock文件無法找到。
解決方法
:
1.給sock文件做個軟鏈
ln
-s
/data/mysqldb/mysql.sock
/tmp/mysql.sock;
或者
2.修改php的默認mysql.sock連接地址
mysql.default_socket=/data/mysqldb/mysql.sock
3.使用tcp
socket的方式進行連接
mysql('127.0.0.1','username','passwod');
下面給大家介紹PHP
mysql_connect()
函數
定義和用法
mysql_connect()
函數打開非持久的
MySQL
連接。
語法
mysql_connect(server,user,pwd,newlink,clientflag)
參數
描述
server
可選。規定要連接的伺服器。
可以包括埠號,例如
"hostname:port",或者到本地套接字的路徑,例如對於
localhost
的
":/path/to/socket"。
如果
PHP
指令
mysql.default_host
未定義(默認情況),則默認值是
'localhost:3306'。
user
可選。用戶名。默認值是伺服器進程所有者的用戶名。
pwd
可選。密碼。默認值是空密碼。
newlink
可選。如果用同樣的參數第二次調用
mysql_connect(),將不會建立新連接,而將返回已經打開的連接標識。參數
new_link
改變此行為並使
mysql_connect()
總是打開新的連接,甚至當
mysql_connect()
曾在前面被用同樣的參數調用過。
clientflag
可選。client_flags
參數可以是以下常量的組合:
MYSQL_CLIENT_SSL
-
使用
SSL
加密
MYSQL_CLIENT_COMPRESS
-
使用壓縮協議
MYSQL_CLIENT_IGNORE_SPACE
-
允許函數名後的間隔
MYSQL_CLIENT_INTERACTIVE
-
允許關閉連接之前的交互超時非活動時間
返回值
如果成功,則返回一個
MySQL
連接標識,失敗則返回
FALSE。
提示和注釋
注釋:腳本一結束,到伺服器的連接就被關閉,除非之前已經明確調用
mysql_close()
關閉了。
提示:要創建一個持久連接,請使用
mysql_pconnect()
函數。
例子
<?php
$con
=
mysql_connect("localhost","mysql_user","mysql_pwd");
if
(!$con)
{
die('Could
not
connect:
'
.
mysql_error());
}
//
一些代碼...
mysql_close($con);
?>
❹ php備份恢復MYSQL資料庫
1、把資料庫sql文件查找 CHARACTER
替換成 CHARACTER SET utf8 或 CHARACTER = utf8
2、到phpmyadmin 創建一個新的資料庫的時候應該選 整理 latin1_swedish_ci
3、到phpmyadmin 進入新建的資料庫,導入資料庫文件
4、用UltraEdit轉換所有ANSI格式的php源碼文件為UTF-8格式:File --> Conversions --> ASCII to UTF-8
5、在php源碼文件中必須加入:
在<head>後加入
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
6、在連接數據DB的文件中找到類似一下代碼
$host="localhost"; $DBname="aa"; //資料庫名字$user= "root"; //用戶名$passwd = ""; //密碼$link = mysql_connect($host,$user,$passwd) or die ("Fail");
$db = mysql_select_db($DBname, $link) or die ("Fail"); //連接
// 要在真正query DB取出資料前,必須加入下面3行mysql_query才可以:
mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER_SET_CLIENT=utf8");
mysql_query("SET CHARACTER_SET_RESULTS=utf8");
7、在php源碼中, 如有應用htmlentities和htmlspecialchars時需要注意:
要似如下格式:
$chars = htmlentities($chars,ENT_QUOTES,"UTF-8");
$chars = htmlspecialchars($chars,ENT_QUOTES,"UTF-8");
如有應用addslashes()或mysql_real_escape_string()記得用以下:
$chars = stripslashes($chars);
另外如果需要的話還可設置:
1、php.ini 設定php中的語系為 (記得restart)
default_charset = "utf-8"
2、my.ini 設定MySQL中的語系為 (記得restart)
[mysqld]
init_connect='SET NAMES utf8'
default-character-set=utf8
[client]
default-character-set = utf8
本人剛接觸PHP+MySQL,才疏學淺,希望能給有需要的得到幫助。
請大家指點,謝謝!
❺ 如何使用python3.4連接MySQL
序號 描述
1 去github上下載pymysql的安裝包pymysql
2 解壓到某個盤符下
3 打開cmd窗口(win環境下),進入pymysql的根目錄下執行命令,python setup.py install
4 在程序里,導入pymysql
5 開始連接資料庫
資料庫操作的API文檔連接:http://legacy.python.org/dev/peps/pep-0249/
代碼如下:
Python代碼
__author__='qindongliang'
#導入pymysql的包
importpymysql
try:
#獲取一個資料庫連接,注意如果是UTF-8類型的,需要制定資料庫
conn=pymysql.connect(host='localhost',user='root',passwd='qin',db='person',port=3306,charset='utf8')
cur=conn.cursor()#獲取一個游標
cur.execute('select*fromperson')
data=cur.fetchall()
fordindata:
#注意int類型需要使用str函數轉義
print("ID:"+str(d[0])+'名字:'+d[1]+"性別:"+d[2])
cur.close()#關閉游標
conn.close()#釋放資料庫資源
exceptException:print("發生異常")
- 結果如下:
D:pythonpython.exeD:/pythonide/pythonprojectworkspace/python/mysql.py
ID:1名字:秦天性別:男
ID:2名字:王晶性別:女
Processfinishedwithexitcode0
Java代碼
原文http://qindongliang1922.iteye.com/blog/2096512
補充說明:
mysqldb作為python連接mysql資料庫的工具,但是mysqldb目前支撐的版本較低,安裝失敗。所以才嘗試pymysql,這個比較簡單易用
軟體下載地址:
python3.2.5:https://www.python.org/ftp/python/3.2.5/python-3.2.5.msi
pymysql3.0.5:https://pypi.python.org/packages/source/P/PyMySQL3/PyMySQL3-0.5.tar.gz
mysql:http://www.phpstudy.net/phpstudy/phpStudyLite.zip(為了方便安裝,我這里選擇phpstudy)
1、python安裝目錄設定為d:/python32
2、pymysql安裝方法為:解壓下載的文件,在cmd中運行: python setup.py install。
檢驗安裝安裝是否成功的方法:import pymysql 。 如果不報錯 說明安裝成功。
3、mysql安裝目錄為D:/phpStudy/MySQL。為避免更多配置問題,可在啟動phpstudy後,將其設為系統服務
4、基本操作:
(1)導入pymysql: import pymysql
(2)連接資料庫: conn=pymysql.connect(host='localhost',user='root',passwd='root',db='ere',charset='utf8') 務必注意各等號前面的內容!charset參數可避免中文亂碼
(3)獲取操作游標:cur=conn.cursor()
(4)執行sql語句,插入記錄:sta=cur.execute("insert 語句") 執行成功後sta值為1。更新、刪除語句與此類似。
(5)執行sql語句,查詢記錄:cur.execute("select語句") 執行成功後cur變數中保存了查詢結果記錄集,然後再用循環列印結果:
for each in cur:
print(each[1].decode('utf-8')) # each[1] 表示當前游標所在行的的第2列值,如果是中文則需要處理編碼
❻ Python MYSQLdb 插入php序列化後的數據 由於引號問題報錯。
報錯信息很明顯了,SQL語法錯誤
❼ php 連接server sql2008
樓主能走到這一步說明做過不少工作,對流程有所了解,閑話不多說。
說下我感覺:最大的可能是php_sqlsrv_52_ts_vc6.dll注意52,vc6這個文件,52對應PHP版本,apacheIIS應注意vc6,vc9的選擇。
如果不行再聯系,我剛剛配置過還熱乎著