一個(gè)簡(jiǎn)單的自動(dòng)發(fā)送郵件系統(tǒng)(二)_PHP教程
Jul 21, 2016 pm 04:06 PM
這里介紹php和mysql結(jié)合起來(lái)實(shí)用。
????基本上,可以說(shuō)php是介于后臺(tái)數(shù)據(jù)庫(kù)和前臺(tái)瀏覽器的一個(gè)中間層,在他們之間傳遞命令。這種方式大大提高了交互的可能性,可以方便使用在投票系統(tǒng),其他動(dòng)態(tài)用戶(hù)輸入和個(gè)性化網(wǎng)站中。
????要想實(shí)現(xiàn)這種交互,首先必需實(shí)現(xiàn)和mysql數(shù)據(jù)庫(kù)連接,可以使用這個(gè)命令實(shí)現(xiàn):
????語(yǔ)法:int mysql_connect(string hostname, string username, string password);??
????·hostname - 運(yùn)行數(shù)據(jù)庫(kù)服務(wù)器所在的主機(jī)名稱(chēng)。
????·username - 連接到數(shù)據(jù)庫(kù)服務(wù)器的用戶(hù)名稱(chēng)。
????·Password - 用戶(hù)密碼。the password set to connect to the MySQL database.??
?????如果連接成功,函數(shù)返回一個(gè)正整數(shù),如果失敗返回一個(gè)負(fù)數(shù)。
?????所有的命令,和往常一樣,必需放置在"" 和 "?>"之間。
?????讓我們繼續(xù)我們的工程,讓我們假設(shè)用MySQL建立了以下的數(shù)據(jù)表:
----------------------------????
mysql> CREATE TABLE information (
????-> name VARCHAR (25),
????-> email VARCHAR (25),????
????-> choice VARCHAR (8) );
----------------------------????
????現(xiàn)在讓我們假設(shè)我們要吧用戶(hù)的信息插入到這個(gè)數(shù)據(jù)庫(kù)中,我們可以通過(guò)修改email.php3腳本來(lái)實(shí)現(xiàn),修改如下:
----------------------------????
/* 這個(gè)腳本將使用從moreinfo.html文件中傳遞過(guò)來(lái)的變量。 */
/* 聲明一些相關(guān)的變量 */
$hostname = "devshed";
$username = "myusername";
$password = "mypassword";
$dbName = "mydbname";
/* 使用MySQL建立的數(shù)據(jù)表存取信息??*/
$userstable = "information";
/* 網(wǎng)站管理員的郵件地址*/
$adminaddress = "administration@buycorn.com";
/* 與數(shù)據(jù)庫(kù)連接*/
MYSQL_CONNECT($hostname,$username,$password) OR DIE("Unable to connect to database");
@mysql_select_db("$dbName") or die("Unable to select database");??
PRINT "
PRINT "Hello, $name.";
PRINT "
";
PRINT "Thank you for your interest.
";
PRINT "We will send information to $email, and have noted that you like $preference";
PRINT "
";
/* 發(fā)送有關(guān)郵件*/
mail("$email", "Your request for information",
"$namenThank you for your interest!n
We sell fresh corn daily over the Internet!
Place your order??at http://www.buycorn.com,
and receive a free package of $preference!");
mail("$adminaddress",
"Visitor request for info.",
"$name requested for information.n
The email address is $email. n The visitor prefers $preference.");
/* 將數(shù)據(jù)插入數(shù)據(jù)表中*/
$query = "INSERT INTO $userstable VALUES('$name','$email', '$preference')";
$result = MYSQL_QUERY($query);
PRINT "Your information has also been inserted into our database, for future reference.";
/* 關(guān)閉與數(shù)據(jù)庫(kù)的連接*/
MYSQL_CLOSE();
?>
----------------------------????
一些注意的地方:
1、在腳本一開(kāi)始聲明的變量是為了函數(shù)MYSQL_CONNECT() 。我們也可以直接在函數(shù)中將這些值給出,可是,考慮工程的可發(fā)展性,這些值應(yīng)該放在一個(gè)獨(dú)立的文件中,用(#include)調(diào)入。
2、語(yǔ)法: int mysql_select_db(string database_name, int link_identifier);
·database_name??必需是在服務(wù)器上的數(shù)據(jù)庫(kù)名。
·link_identifier(可選的) 是指明連接,基于此向數(shù)據(jù)庫(kù)服務(wù)器發(fā)出請(qǐng)求。
·返回值為true/false
3、語(yǔ)法: int mysql_query(string query, int link_identifier);
·query??發(fā)送向mysql服務(wù)器的sql命令。
·link_identifier(可選擇)??指明連接,基于此向數(shù)據(jù)庫(kù)服務(wù)器發(fā)送sql命令。
·返回值為整數(shù),正數(shù)表示成功了,負(fù)數(shù)表示失敗。
4、語(yǔ)法: int mysql_close(int link_identifier);??
·link_indentifier??與上面相同
·返回值為整數(shù),正數(shù)表示成功了,負(fù)數(shù)表示失敗。
在下一篇文章中,我將給大家講解如何從mysql中輸出數(shù)據(jù)。?

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

STD :: Chrono digunakan dalam C untuk memproses masa, termasuk mendapatkan masa semasa, mengukur masa pelaksanaan, titik masa operasi dan tempoh, dan masa analisis pemformatan. 1. Gunakan std :: chrono :: system_clock :: sekarang () untuk mendapatkan masa semasa, yang boleh ditukar menjadi rentetan yang boleh dibaca, tetapi jam sistem mungkin tidak membosankan; 2. Gunakan std :: chrono :: steady_clock untuk mengukur masa pelaksanaan untuk memastikan monoton, dan mengubahnya menjadi milisaat, saat dan unit lain melalui duration_cast; 3. Titik masa (time_point) dan tempoh (tempoh) boleh saling beroperasi, tetapi perhatian harus dibayar kepada keserasian unit dan zaman jam (Epoch)

ToAccessenVironmentVariablesInphp, useGetenv () orthe $ _envsuperglobal.1.getenv ('var_name') retrievesaspecificvariable.2. $ _ En V ['var_name'] AccessSvariablesifvariables_orderinphp.iniincludes "e" .setVariablesviacliwithvar = valuePhpscript.php, inapach

CTE adalah hasil sementara yang ditetapkan dalam MySQL yang digunakan untuk memudahkan pertanyaan kompleks. Ia boleh dirujuk beberapa kali dalam pertanyaan semasa, meningkatkan kebolehbacaan dan penyelenggaraan kod. Sebagai contoh, apabila mencari pesanan terkini untuk setiap pengguna dalam jadual pesanan, anda boleh terlebih dahulu mendapatkan tarikh pesanan terkini untuk setiap pengguna melalui CTE, dan kemudian mengaitkannya dengan jadual asal untuk mendapatkan rekod lengkap. Berbanding dengan subqueries, struktur CTE lebih jelas dan logik lebih mudah untuk debug. Petua penggunaan termasuk alias eksplisit, menggabungkan pelbagai CTE, dan memproses data pokok dengan CTE rekursif. Menguasai CTE boleh menjadikan SQL lebih elegan dan cekap.

PhphasthreecommentStyles: //,#forsingle-lineand/.../formulti-line.usecommentstoexplainwhycodeexists ,notwhatitdoes.marktodo/fix MeitemsanddisableCodeTemporaryDuringDebugging.avoidover-CommentingsImpleLogic.writeConcise, GrammaticallyCorrectcommentsandu

Terdapat tiga cara utama untuk mengelakkan ralat "UndefinedIndex": pertama, gunakan isset () untuk memeriksa sama ada kunci array wujud dan memastikan bahawa nilai itu tidak null, yang sesuai untuk senario yang paling biasa; Kedua, gunakan array_key_exists () untuk hanya menentukan sama ada kunci wujud, yang sesuai untuk situasi di mana kunci tidak wujud dan nilainya adalah batal; Akhirnya, gunakan pengendali gabungan kosong ?? (Php7) untuk menetapkan nilai lalai, yang disyorkan untuk projek PHP moden, dan memberi perhatian kepada ejaan nama medan borang, menggunakan ekstrak () dengan teliti, dan periksa array tidak kosong sebelum melintasi untuk mengelakkan lagi risiko.

Apabila menggunakan penyataan pra -proses PHP untuk melaksanakan pertanyaan dengan klausa, 1. Dinamiknya menjana ruang letak mengikut panjang array; 2. Apabila menggunakan PDO, anda boleh lulus secara langsung dalam array, dan gunakan array_values untuk memastikan indeks berterusan; 3. Apabila menggunakan MySQLI, anda perlu membina rentetan jenis dan mengikat parameter, memberi perhatian kepada cara mengembangkan keserasian array dan versi; 4. Elakkan splicing SQL, memproses tatasusunan kosong, dan memastikan jenis data sepadan. Kaedah khusus ialah: penggunaan pertama implode dan array_fill untuk menjana ruang letak, dan kemudian mengikat parameter mengikut ciri -ciri lanjutan untuk melaksanakan dengan selamat dalam pertanyaan.

Whensettingupmysqltables, memilihTheRightDatypesiscialforfiencyandscalability.1) pemahamanThedataeachcolumnwillstore-umbers, text, date, orflags-andchooseaccordingly.2)

Alasan dan penyelesaian untuk fungsi header kegagalan lompat: 1. Terdapat output sebelum tajuk, dan semua pra-output perlu diperiksa dan dikeluarkan atau penampan OB_Start () digunakan; 2. Kegagalan untuk menambah keluar menyebabkan gangguan kod berikutnya, dan keluar atau mati harus ditambah sebaik sahaja lompatan; 3. Kesalahan jalan harus digunakan untuk memastikan ketepatan dengan menggunakan laluan mutlak atau splicing dinamik; 4. Konfigurasi pelayan atau gangguan cache boleh cuba membersihkan cache atau menggantikan ujian persekitaran.
