if(is_uploaded_file($_FILES['img']['tmp_name'])){
創(chuàng)新互聯(lián)建站堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站制作、成都網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的庫車網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
if(move_uploaded_file($_FILES['img']['tmp_name'], $target_name)){
//這就算上傳成功了,插入數(shù)據(jù)庫
if (!$link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password')) {
echo 'Could not connect to mysql';
exit;
}
if (!mysql_select_db('mysql_dbname', $link)) {
echo 'Could not select database';
exit;
}
$sql = 'insert into table_name(id, img_path) values(img_id, $target_name)';
$result = mysql_query($sql, $link);
if (!$result) {
echo "DB Error, could not create table the database\n";
echo 'MySQL Error: ' . mysql_error();
exit;
}
mysql_free_result($result);
}
else{
echo "上傳失敗";
}
}
需要轉(zhuǎn)義一下。有幾個辦法:
1,最簡單,把一些危險字符過濾掉,比如英文的單引號,雙引號等;
2,使用addslashes在php中進行轉(zhuǎn)義,自己處理;
3,可以使用一些現(xiàn)成的處理方法,比如uchome自帶的getstr。這樣的好處就是對各種可能出現(xiàn)的情況處理比較好。
PHP有自帶的高性能函數(shù) var_export
conn.php
?php
$dbconfig = array (
'host'='127.0.0.1',
'name'='root',
'password'='123456',
?
b.php
?php
// 讀取配置
include 'conn.php';
echo $dbconfig['host'];
// 修改配置
$dbconfig['host'] = 'xxx.xxx.xxx.xxx';
file_put_contents('conn.php', "?php\n$dbconfig = " . var_export($dbconfig) . "\n?");
// 再讀取配置
include 'conn.php';
echo $dbconfig['host'];
?
參考連接:
存儲的是相對路徑,可以到網(wǎng)站服務(wù)器上查看,應(yīng)該有upload文件夾,里面就是存儲的圖片,這樣寫的好處是節(jié)省了數(shù)據(jù)庫存儲空間,轉(zhuǎn)移的時候可以直接將整個服務(wù)器的圖片打包轉(zhuǎn)移。
訪問的時候,前面可以拼接域名和指定的路徑,這些后臺可以輕松獲取到,然后拼接上服務(wù)器的路徑,我們就可以直接在網(wǎng)頁上訪問到圖片了。
這是很常見的圖片數(shù)據(jù)庫保存方式,和直接把圖片的二進制存入數(shù)據(jù)庫,這樣的方式便于檢索,占用空間小。當然,目前主流都采用oss來單獨存儲文件了,就是有專門的文件服務(wù)器,這個時候,一般存儲的是完整的圖片路徑。
1、將php安裝目錄下的php_mysql.dll和MySQL安裝目錄下的libmysql.dll文件拷貝至c:/windows/system32中;
2、配置php.ini
extension=php_gd2.dll
extension=php_mbstring.dll
extension=php_mysql.dll
extension=php_mysqli.dll
把上面四個。dll的最前面的;去掉
二、php表單提交至數(shù)據(jù)庫的實現(xiàn)過程
1、login.php頁面
SPAN style="FONT-SIZE: 14px"html
FORM method=post action=add.php
Name: INPUT name=usernameBR
Email: INPUT name=emailBR
INPUT value=提交 type=submit name=submit
/FORM
/SPAN
2、add.php頁面
SPAN style="FONT-SIZE: 14px"?php
include("conn.php");
?
?php
if(isset($_POST["submit"]))
{
$sql = "insert into users(username, email) values('$_POST[username]', '$_POST[email]')";
mysqli_query($conn, $sql);
echo "添加成功";
}
?/SPAN
3、conn.php頁面
SPAN style="FONT-SIZE: 14px"?php
$conn = new mysqli("localhost", "root", "159357");
$conn-select_db("db_test");
//mysql_query("set name 'gb2312'");
$conn-set_charset("utf8");
?/SPAN
當然是在服務(wù)器端,但不是保存在內(nèi)存中,而是保存在文件或數(shù)據(jù)庫中。
默認情況下,php.ini
中設(shè)置的
SESSION
保存方式是
files(session.save_handler
=
files),即使用讀寫文件的方式保存
SESSION
數(shù)據(jù),而
SESSION
文件保存的目錄由
session.save_path
指定,文件名以
sess_
為前綴,后跟
SESSION
ID,如:sess_c72665af28a8b14c0fe11afe3b59b51b。文件中的數(shù)據(jù)即是序列化之后的
SESSION
數(shù)據(jù)了。
如果訪問量大,可能產(chǎn)生的
SESSION
文件會比較多,這時可以設(shè)置分級目錄進行
SESSION
文件的保存,效率會提高很多,設(shè)置方法
為:session.save_path="N;/save_path",N
為分級的級數(shù),save_path
為開始目錄。
當寫入
SESSION
數(shù)據(jù)的時候,PHP
會獲取到客戶端的
SESSION_ID,然后根據(jù)這個
SESSION
ID
到指定的
SESSION
文件保存目錄中找到相應(yīng)的
SESSION
文件,不存在則創(chuàng)建之,最后將數(shù)據(jù)序列化之后寫入文件。讀取
SESSION
數(shù)據(jù)是也是類似的操作流程,對讀出來的數(shù)據(jù)需要進行解序列化,生成相應(yīng)的
SESSION
變量。