mysql-ലേക്ക് ഒരു ഫോമിൽ നിന്ന് ഡാറ്റ ചേർക്കുന്നു. PHP വഴി MySQL ഡാറ്റാബേസിലേക്ക് ചിത്രങ്ങൾ ചേർക്കുന്നു. mysql ഡാറ്റാബേസിലേക്കുള്ള Php എൻട്രി. പ്രായോഗിക ഉദാഹരണങ്ങൾ

ഈ പോസ്റ്റിൽ ഞാൻ നിങ്ങളോട് പറയാൻ ആഗ്രഹിക്കുന്നു, ഫോമിലേക്ക് നൽകിയ ഡാറ്റ ഡാറ്റാബേസിലേക്ക് എങ്ങനെ കൈമാറാം. അതിനാൽ ഞങ്ങൾ ഒരു ലളിതമായ ഫോം സൃഷ്ടിക്കുന്നു, അവിടെ ഞങ്ങൾക്ക് രണ്ട് ഫീൽഡുകൾ ഉണ്ടാകും: ഉപയോക്താവിന്റെ പേരും അവന്റെ ഇമെയിലും:

നിങ്ങളുടെ പേര്:
നിങ്ങളുടെ ഇമെയിൽ:


ഒരു പുതിയ ഉപയോക്താവിനെ രജിസ്റ്റർ ചെയ്യുന്നതിനോ വാർത്തകൾ അയക്കുന്നതിനോ സ്ഥിതിവിവരക്കണക്കുകൾ ശേഖരിക്കുന്നതിനോ എന്തിന് വേണ്ടിയും ഈ ഫോം ഉപയോഗിക്കാം... പൊതുവേ, ഉപയോക്താവ് തന്റെ ഡാറ്റ ഈ ഫോമിലേക്ക് നൽകുന്നു: പേരും ഇമെയിലും, ബട്ടണിലെ ക്ലിക്കുകളും തുടർന്ന് ഡാറ്റയും PHP സ്ക്രിപ്റ്റിലേക്ക് പോകുന്നു:

$name = $_POST["name"]; $ഇമെയിൽ = $_POST["ഇമെയിൽ"]; $ഫലം = mysqli_query("ഉപയോക്താവിലേക്ക് തിരുകുക (പേര്, ഇമെയിൽ) മൂല്യങ്ങൾ ("$name", "$email")"); എങ്കിൽ ($ഫലം) (എക്കോ "ഡാറ്റ വിജയകരമായി സംരക്ഷിച്ചു!"; ) അല്ലെങ്കിൽ (എക്കോ "ഒരു പിശക് സംഭവിച്ചു, ദയവായി വീണ്ടും ശ്രമിക്കുക."; )


ഈ തിരക്കഥയിൽ എന്താണ് നടക്കുന്നത്? നമുക്ക് ഇപ്പോൾ അത് മനസ്സിലാക്കാം!
ഫോമിൽ നൽകിയ ഡാറ്റ POST രീതി ഉപയോഗിച്ച് php സ്ക്രിപ്റ്റിലേക്ക് (മുകളിൽ എഴുതിയത്) കൈമാറ്റം ചെയ്യപ്പെടുന്നു, കൂടാതെ $_POST എന്ന ആഗോള അറേ ഉപയോഗിച്ച്, ഡാറ്റ $name, $email എന്നീ വേരിയബിളുകളായി രൂപീകരിക്കപ്പെടുന്നു:

$name = $_POST["name"]; $ഇമെയിൽ = $_POST["ഇമെയിൽ"];


ഡാറ്റാബേസിലേക്ക് വേരിയബിളുകൾ നൽകുന്നതിന് തയ്യാറായ ശേഷം, ഞങ്ങൾ ഒരു അഭ്യർത്ഥന സൃഷ്ടിക്കുന്നു. എന്നാൽ ആദ്യം, നിങ്ങളുടെ സ്ക്രിപ്റ്റുകൾ ഇതിനകം തന്നെ ഡാറ്റാബേസുമായി ബന്ധിപ്പിച്ചിരിക്കണം; ഡാറ്റാബേസിലേക്ക് എങ്ങനെ കണക്റ്റുചെയ്യാമെന്ന് ഞാൻ ഈ ത്രെഡിൽ എഴുതി: .അഭ്യർത്ഥന തന്നെ ഇതുപോലെ കാണപ്പെടുന്നു:

$ഫലം = mysqli_query("ഉപയോക്താവിലേക്ക് തിരുകുക (പേര്, ഇമെയിൽ) മൂല്യങ്ങൾ ("$name", "$email")");


ഈ കോഡിൽ, ഉപയോക്തൃ പട്ടികയിലുള്ള പേരിലേക്കും ഇമെയിൽ സെല്ലുകളിലേക്കും ഇനിപ്പറയുന്ന വേരിയബിളുകൾ ചേർക്കുമെന്ന് ഞങ്ങൾ സൂചിപ്പിച്ചു: $name, $email.
അടുത്തതായി, എല്ലാം ശരിയായി നടന്നാൽ, വ്യവസ്ഥയിൽ നിന്ന് ഞങ്ങൾക്ക് ഒരു സന്ദേശം ലഭിക്കും:

ഡാറ്റ വിജയകരമായി സംരക്ഷിച്ചു!


എന്തെങ്കിലും പ്രശ്നങ്ങൾ ഉണ്ടാകുകയും ഡാറ്റ നൽകിയിട്ടില്ലെങ്കിൽ, ഞങ്ങൾക്ക് ഒരു പിശക് സന്ദേശം ലഭിക്കും:

ഒരു പിശക് സംഭവിച്ചു, ദയവായി വീണ്ടും ശ്രമിക്കുക.


അത്രയേയുള്ളൂ!

*** *** *** *** ***

വേണമെങ്കിൽ, വിവരങ്ങൾ നൽകുന്നതിന് നിങ്ങൾക്ക് കൂടുതൽ ഫീൽഡുകൾ ചേർക്കാൻ കഴിയും, ഉദാഹരണത്തിന്, ഉപയോക്താവിന്റെ നഗരത്തിൽ പ്രവേശിക്കുന്നതിന് ഞങ്ങൾ ഒരു ഫീൽഡ് ചേർക്കേണ്ടതുണ്ട്. ഞങ്ങൾക്ക് ഇതിനകം ഒരു റെഡിമെയ്ഡ് സ്ക്രിപ്റ്റ് ഉണ്ട് (മുകളിൽ എഴുതിയത്), ഇപ്പോൾ ഞങ്ങൾ ഒരു ഫീൽഡ് ചേർക്കും നിങ്ങളുടെ നഗരം, നമുക്ക് വേരിയബിളിനെ വിളിക്കാം: $city . ഡാറ്റ എൻട്രി ഫോമിൽ, അതിനുശേഷം:

നിങ്ങളുടെ ഇമെയിൽ:


ചേർക്കുക:

നിങ്ങളുടെ നഗരം:


php സ്ക്രിപ്റ്റിൽ, ശേഷം:

$ഇമെയിൽ = $_POST["ഇമെയിൽ"];


ചേർക്കുക:

$city = $_POST["നഗരം"];


തീർച്ചയായും ഞങ്ങൾ ഇത് അഭ്യർത്ഥനയിൽ ചേർക്കുന്നു, ഇതുപോലെ:

$ഫലം = mysqli_query("ഉപയോക്താവിലേക്ക് തിരുകുക (പേര്, ഇമെയിൽ, നഗരം) മൂല്യങ്ങൾ ("$name", "$email", "$city")");


നിങ്ങൾ അവസാനിപ്പിക്കേണ്ടത് ഇതാണ്:
ഇൻപുട്ട് ഫോം:

നിങ്ങളുടെ പേര്:
നിങ്ങളുടെ ഇമെയിൽ:
നിങ്ങളുടെ നഗരം:


സ്ക്രിപ്റ്റ്:

$name = $_POST["name"]; $ഇമെയിൽ = $_POST["ഇമെയിൽ"]; $city = $_POST["നഗരം"]; $ഫലം = mysqli_query("ഉപയോക്താവിലേക്ക് തിരുകുക (പേര്, ഇമെയിൽ, നഗരം) മൂല്യങ്ങൾ ("$name", "$email", "$city")"); എങ്കിൽ ($ഫലം == ശരി) (എക്കോ "ഡാറ്റ വിജയകരമായി സംരക്ഷിച്ചു!"; ) അല്ലെങ്കിൽ (എക്കോ "ഒരു പിശക് സംഭവിച്ചു, ദയവായി വീണ്ടും ശ്രമിക്കുക."; )


നിങ്ങൾക്ക് കാണാനാകുന്നതുപോലെ, സങ്കീർണ്ണമായ ഒന്നും തന്നെയില്ല! ആവശ്യമെങ്കിൽ, നിങ്ങൾക്ക് മറ്റൊരു ഫീൽഡും മറ്റൊന്നും മറ്റൊന്നും ചേർക്കാം ...

നിങ്ങളുടേതിൽ നിന്ന് ഒരു ഡാറ്റാബേസ് എങ്ങനെ കൈകാര്യം ചെയ്യാമെന്ന് ഈ ഗൈഡ് നിങ്ങളെ കാണിക്കും PHPസ്ക്രിപ്റ്റ്. നീ പഠിക്കും ഒരു MySQL പട്ടികയിലേക്ക് ഒരു റെക്കോർഡ് ചേർക്കുന്നു,ഉപയോഗിക്കുന്നത് PHP കോഡ്. നിങ്ങൾ ആരംഭിക്കുന്നതിന് മുമ്പ്, PHP, ഡാറ്റാബേസുകൾ എന്നിവയിൽ പ്രവർത്തിക്കുന്നതിന്റെ അടിസ്ഥാന ഘട്ടങ്ങൾ ഉൾക്കൊള്ളുന്ന ഞങ്ങളുടെ മറ്റ് ട്യൂട്ടോറിയലുകൾ പരിശോധിക്കുക - PHP-യിൽ നിന്ന് MySQL ഡാറ്റാബേസിലേക്ക് കണക്റ്റുചെയ്യുക.

നിങ്ങൾ ആരംഭിക്കുന്നതിന് മുമ്പ്, ഇനിപ്പറയുന്നവ പരിശോധിക്കുക:

  • നിങ്ങളുടെ ഹോസ്റ്റിംഗ് നിയന്ത്രണ പാനലിലേക്കുള്ള ആക്സസ്

ഘട്ടം 1 - ഒരു പട്ടിക ഉണ്ടാക്കുന്നു

ഒന്നാമതായി, നിങ്ങളുടെ ഡാറ്റയ്ക്കായി ഞങ്ങൾ ഒരു പട്ടിക സൃഷ്ടിക്കേണ്ടതുണ്ട്. നിങ്ങൾക്ക് ചെയ്യാൻ കഴിയുന്ന വളരെ ലളിതമായ ഒരു നടപടിക്രമമാണിത് phpMyAdminനിങ്ങളുടെ ഹോസ്റ്റിംഗ് നിയന്ത്രണ പാനലിൽ നിന്ന്. മുമ്പത്തെ ട്യൂട്ടോറിയലിൽ ഒരു MySQL ഡാറ്റാബേസ് സൃഷ്‌ടിക്കുന്ന പ്രക്രിയ ഞങ്ങൾ ഇതിനകം ഉൾപ്പെടുത്തിയിട്ടുണ്ട്, അതിനാൽ ഞങ്ങൾ ആ ഭാഗം ഇവിടെ ഒഴിവാക്കും.

phpMyAdmin പേജിൽ ലോഗിൻ ചെയ്ത ശേഷം, ഇതുപോലുള്ള ഒരു ചിത്രം നിങ്ങൾ കാണും:

എന്ന പേരിൽ ഒരു പട്ടിക ഉണ്ടാക്കാം വിദ്യാർത്ഥികൾഞങ്ങളുടെ ഡാറ്റാബേസിനായി u266072517_name. ബട്ടൺ ഉപയോഗിച്ച് നിങ്ങൾക്ക് ഒരു പുതിയ പട്ടിക സൃഷ്ടിക്കാൻ കഴിയും പട്ടിക സൃഷ്ടിക്കുക. ഇതിനുശേഷം, നിങ്ങളുടെ പട്ടികയ്ക്ക് ആവശ്യമായ എല്ലാ ഡാറ്റയും നൽകാനാകുന്ന ഒരു പുതിയ പേജ് നിങ്ങൾ കാണും:

ഒരു പട്ടിക സൃഷ്‌ടിക്കുന്നതിനുള്ള ഏറ്റവും ലളിതമായ മാർഗമാണിത്, പട്ടിക/ഡാറ്റാബേസ് ഘടനയെ കുറിച്ചുള്ള കൂടുതൽ വിവരങ്ങൾക്കും ഓരോ ഫീൽഡിനും ഏതൊക്കെ ക്രമീകരണങ്ങൾ ഉപയോഗിക്കാമെന്നും, ദയവായി ഔദ്യോഗിക phpMyAdmin ഡോക്യുമെന്റേഷൻ പരിശോധിക്കുക.

ഞങ്ങൾ ഉപയോഗിക്കുന്ന ഫീൽഡുകളുടെ ചില ലളിതമായ വിശദീകരണങ്ങൾ ഇതാ:

  • പേര്നിങ്ങളുടെ ഫീൽഡിന്റെ പേരാണ്. നിങ്ങളുടെ മേശയുടെ ഏറ്റവും മുകളിൽ ദൃശ്യമാകും.
  • ടൈപ്പ് ചെയ്യുക- ഇവിടെ നിങ്ങൾക്ക് ഫീൽഡ് തരം സജ്ജമാക്കാൻ കഴിയും. ഉദാഹരണത്തിന്, ഞങ്ങൾ തിരഞ്ഞെടുക്കുന്നു varcharകാരണം ഇവിടെ നമ്മൾ ഒരു പേരുള്ള ഒരു സ്ട്രിംഗ് നൽകേണ്ടതുണ്ട് (അതിൽ അക്ഷരങ്ങളാണ്, അക്കങ്ങളല്ല).
  • ദൈർഘ്യം/മൂല്യങ്ങൾ- ഈ ഫീൽഡിലെ നിങ്ങളുടെ എൻട്രിയുടെ പരമാവധി ദൈർഘ്യം സജ്ജീകരിക്കാൻ ഉപയോഗിക്കുന്നു.
  • സൂചിക- ഞങ്ങളുടെ "ഐഡി" ഫീൽഡിനായി ഞങ്ങൾ "പ്രാഥമിക" സൂചിക ഉപയോഗിക്കുന്നു. ഒരു പട്ടിക സൃഷ്ടിക്കുമ്പോൾ, ഒരു ഐഡി ഫീൽഡ് ഉണ്ടായിരിക്കാൻ ശുപാർശ ചെയ്യുന്നു. പട്ടികകൾ തമ്മിലുള്ള ബന്ധങ്ങൾ കോൺഫിഗർ ചെയ്യുമ്പോൾ ഒരു പട്ടികയിലെ റെക്കോർഡുകൾ സൂചികയിലാക്കാൻ ഇത് ഉപയോഗിക്കുന്നു. അതും ഇവിടെ കുറിക്കാം "A_I", അത് അർത്ഥമാക്കുന്നത് ഓട്ടോ ഇൻക്രിമെന്റ്. ഈ ക്രമീകരണം സ്വയമേവ സൂചിക വർദ്ധിപ്പിക്കും (1,2,3,4...).

ക്ലിക്ക് ചെയ്യുക രക്ഷിക്കുംനിങ്ങളുടെ മേശയും സൃഷ്ടിക്കപ്പെടും.

ഘട്ടം 2 - PHP കോഡ് സൃഷ്ടിച്ച് MySQL പട്ടികയിലേക്ക് ഒരു എൻട്രി ചേർക്കുക

ഓപ്ഷൻ 1 - MySQLi രീതി

ഒന്നാമതായി, ഞങ്ങളുടെ മുൻ ട്യൂട്ടോറിയൽ അനുസരിച്ച് നിങ്ങൾ ഡാറ്റാബേസിലേക്ക് ഒരു കണക്ഷൻ സ്ഥാപിക്കേണ്ടതുണ്ട്. ഇതിനുശേഷം, MySQL ടേബിളിലേക്ക് ഒരു റെക്കോർഡ് ചേർക്കുന്നതിന് SQL അന്വേഷണത്തിൽ നമുക്ക് തുടരാം - തിരുകുക. കണക്ഷനും ഇൻസേർഷൻ രീതിയും ഉള്ള ഒരു സമ്പൂർണ്ണ കോഡ് ഉദാഹരണം ഇതാ:

". mysqli_error($conn); ) mysqli_close($conn); ?>

അങ്ങനെ, കോഡിന്റെ ആദ്യ ഭാഗം (വരികൾ 3 – 18 ) ഡാറ്റാബേസ് കണക്ഷൻ സ്ഥാപനത്തിന്റെ ഭാഗം കാണുക. ഞങ്ങൾ ഈ ഭാഗത്തിലൂടെ വീണ്ടും പോകില്ല, ഓരോ വരിയുടെയും അർത്ഥമെന്താണെന്ന് നിങ്ങൾക്ക് അറിയണമെങ്കിൽ, ഒരു ഡാറ്റാബേസിലേക്ക് എങ്ങനെ ബന്ധിപ്പിക്കാം എന്നതിനെക്കുറിച്ചുള്ള ഞങ്ങളുടെ മുൻ ഗൈഡ് പരിശോധിക്കുക.

നമുക്ക് വരിയിൽ നിന്ന് ആരംഭിക്കാം 19 :

$sql = "വിദ്യാർത്ഥികളിലേക്ക് തിരുകുക (പേര്, അവസാന നാമം, ഇമെയിൽ) മൂല്യങ്ങൾ ("തോം", "വിയൽ", " [ഇമെയിൽ പരിരക്ഷിതം]")";

ഇതാണ് ഏറ്റവും പ്രധാനപ്പെട്ട കോഡ്, ഈ ട്യൂട്ടോറിയലിൽ ഞങ്ങൾ ഉൾക്കൊള്ളുന്നതെല്ലാം ഇത് ചെയ്യുന്നു - ഡാറ്റാബേസിലെ MySQL പട്ടികയിലേക്ക് ഒരു റെക്കോർഡ് ചേർക്കുന്നു. ഇൻസേർട്ട് ചെയ്യുകനിർദ്ദിഷ്ട MySQL ഡാറ്റാബേസ് പട്ടികയിലേക്ക് ഒരു റെക്കോർഡ് ചേർക്കുന്ന ഒരു എക്സ്പ്രഷൻ ആണ്. ഞങ്ങളുടെ ഉദാഹരണത്തിൽ ഞങ്ങൾ ഒരു പട്ടികയിലേക്ക് ഡാറ്റ ചേർക്കുന്നു വിദ്യാർത്ഥികൾ.

കൂടുതൽ മുന്നോട്ട് പോകുമ്പോൾ, പരാൻതീസിസിൽ, ഞങ്ങൾ മൂല്യങ്ങൾ ചേർക്കുന്ന പട്ടിക ഫീൽഡുകൾ ഞങ്ങൾ നിർവ്വചിക്കുന്നു: (പേര്, അവസാന നാമം, ഇമെയിൽ). ഡാറ്റ ഒരു നിർദ്ദിഷ്ട ക്രമത്തിൽ ചേർക്കും. നമ്മൾ എഴുതിയാൽ (ഇമെയിൽ, അവസാന നാമം, പേര്), മൂല്യങ്ങൾ മറ്റൊരു ക്രമത്തിൽ ചേർക്കും.

അർത്ഥത്തിന്റെ അടുത്ത ഭാഗം മൂല്യങ്ങൾ. ഇവിടെ ഞങ്ങൾ മുമ്പ് വ്യക്തമാക്കിയ ഫീൽഡുകളിൽ ഞങ്ങളുടെ മൂല്യങ്ങൾ സജ്ജമാക്കുന്നു. അങ്ങനെ, ഓരോ ഫീൽഡിനും അതിന്റേതായ മൂല്യം ലഭിക്കും. ഉദാഹരണത്തിന്, ഞങ്ങളുടെ കാര്യത്തിൽ ഇത് ഇതുപോലെയായിരിക്കും: പേര് = തോം, അവസാന നാമം = കുപ്പി, ഇമെയിൽ = [ഇമെയിൽ പരിരക്ഷിതം] .

ഇവിടെ നമ്മൾ രൂപീകരിക്കുന്നു എന്നതാണ് ശ്രദ്ധിക്കേണ്ട പ്രധാന കാര്യം SQL അന്വേഷണം PHP കോഡ് ഉപയോഗിക്കുന്നു. SQL അന്വേഷണങ്ങൾ ഉദ്ധരണികളിൽ ഉൾപ്പെടുത്തിയിരിക്കണം. ഞങ്ങളുടെ ഉദാഹരണത്തിൽ, ഉദ്ധരണികൾക്കിടയിലുള്ളതും $sql = എന്നതിന് ശേഷം വരുന്നതുമായ എല്ലാം ഒരു SQL അന്വേഷണമാണ്.

കോഡിന്റെ അടുത്ത ഭാഗം ( 20 – 22 വരികൾ) ഞങ്ങളുടെ അഭ്യർത്ഥന പ്രവർത്തിപ്പിക്കുകയും അഭ്യർത്ഥനയുടെ വിജയം പരിശോധിക്കുകയും ചെയ്യുന്നു:

എങ്കിൽ (mysqli_query($conn, $sql)) (എക്കോ "പുതിയ റെക്കോർഡ് വിജയകരമായി സൃഷ്‌ടിച്ചു"; )

ചോദ്യം ശരിയായി പ്രവർത്തിപ്പിച്ചാൽ ഒരു വിജയ സന്ദേശം പ്രദർശിപ്പിക്കും.

അവസാന ഭാഗവും ( 22 – 24 വരികൾ) ഞങ്ങളുടെ അഭ്യർത്ഥന പരാജയപ്പെട്ടാൽ മറ്റൊരു സന്ദേശം കാണിക്കുക:

അല്ലെങ്കിൽ (എക്കോ "പിശക്:" . $sql . "
". mysqli_error($conn); )

എന്തെങ്കിലും തെറ്റ് സംഭവിച്ചാൽ ഈ കോഡ് ഞങ്ങൾക്ക് ഒരു പിശക് സന്ദേശം കാണിക്കുന്നു.

ഓപ്ഷൻ 2 - PHP ഡാറ്റ ഒബ്ജക്റ്റ് രീതി (P HP D ata O bject)

മുമ്പത്തെ ഉദാഹരണത്തിലെന്നപോലെ, ഞങ്ങൾ ആദ്യം ഡാറ്റാബേസിലേക്ക് ഒരു കണക്ഷൻ ഉണ്ടാക്കേണ്ടതുണ്ട്, അത് ഒരു പുതിയ PDO ഒബ്ജക്റ്റ് സൃഷ്ടിക്കുമ്പോൾ ചെയ്യപ്പെടും - മുമ്പത്തെ ട്യൂട്ടോറിയൽ ഇത് എങ്ങനെ സംഭവിക്കുന്നു എന്നതിനെക്കുറിച്ച് സംസാരിക്കുന്നു. ഒരു MySQL ഡാറ്റാബേസ് കണക്ഷൻ ഒരു PDO ഒബ്‌ജക്റ്റ് ആയതിനാൽ, ചോദ്യം തയ്യാറാക്കുന്നതിനും പ്രവർത്തിപ്പിക്കുന്നതിനും ഞങ്ങൾ വിവിധ PDO 'രീതികൾ' (ഒരു നിർദ്ദിഷ്ട വസ്തുവിന്റെ ഭാഗമായ ഒരു തരം ഫംഗ്‌ഷനുകൾ) ഉപയോഗിക്കണം. ഒബ്ജക്റ്റ് രീതികളെ ഇതുപോലെ വിളിക്കുന്നു:

$the_Object->The_Method();

SQL കോഡ് നടപ്പിലാക്കുന്നതിന് മുമ്പ് 'തയ്യാറാക്കാൻ' PDO നിങ്ങളെ അനുവദിക്കുന്നു. പ്രവർത്തിപ്പിക്കുന്നതിന് മുമ്പ് SQL അന്വേഷണം വിലയിരുത്തുകയും ക്രമീകരിക്കുകയും ചെയ്യുന്നു. അങ്ങനെ, ഒരു ഫോം ഫീൽഡിൽ SQL കോഡ് പൂരിപ്പിച്ച് ഒരു ലളിതമായ SQL കുത്തിവയ്പ്പ് ആക്രമണം നടത്താം. ഉദാഹരണത്തിന്:

// ഉപയോക്താവ് ഇത് ഒരു ലോഗിൻ ഫോമിന്റെ ഉപയോക്തൃനാമ ഫീൽഡിൽ എഴുതുന്നു thom"; ഡാറ്റാബേസ് ഡ്രോപ്പ് ചെയ്യുക user_table; // അന്തിമ ചോദ്യം ഇതായിരിക്കും "ഉപയോക്തൃ_ടേബിളിൽ നിന്ന് തിരഞ്ഞെടുക്കുക * എവിടെ ഉപയോക്തൃനാമം = thom"; DROP DATABASE user_table;

SQL കോഡ് വാക്യഘടനയിൽ ശരിയായതിനാൽ, അർദ്ധവിരാമം ഉണ്ടാക്കുന്നു ഡാറ്റാബേസ് യൂസർ_ടേബിൾ ഡ്രോപ്പ് ചെയ്യുകപുതിയ SQL അന്വേഷണവും നിങ്ങളുടെ ഉപയോക്താക്കളുടെ പട്ടികയും ഇല്ലാതാക്കി. തയ്യാറാക്കിയ പദപ്രയോഗങ്ങൾ പ്രതീകങ്ങളെ അനുവദിക്കുന്നില്ല ഒപ്പം ; യഥാർത്ഥ അഭ്യർത്ഥനയും നിർദ്ദേശവും പൂർത്തിയാക്കാൻ ഡാറ്റാബേസ് ഡ്രോപ്പ് ചെയ്യുകഒരിക്കലും വധിക്കപ്പെടില്ല.

എപ്പോഴും PDO ഉള്ള ഒരു ഡാറ്റാബേസിൽ നിന്ന് ഡാറ്റ അയയ്ക്കുമ്പോഴോ സ്വീകരിക്കുമ്പോഴോ തയ്യാറാക്കിയ ചോദ്യങ്ങൾ ഉപയോഗിക്കുക.

തയ്യാറാക്കിയ പദപ്രയോഗങ്ങൾ ഉപയോഗിക്കുന്നതിന്, നിങ്ങൾ ഒരു പുതിയ വേരിയബിൾ സൃഷ്ടിക്കേണ്ടതുണ്ട്, അത് രീതിയെ വിളിക്കും തയ്യാറാക്കുക()ഡാറ്റാബേസ് ഒബ്ജക്റ്റിൽ.

ശരിയായ രൂപത്തിൽ കോഡ് ഇതുപോലെ കാണപ്പെടുന്നു:

$servername = "mysql.hostinger.com"; $ഡാറ്റാബേസ് = "u266072517_name"; $username = "u266072517_user"; $password = "buystuffpwd"; $sql = "mysql:host=$servername;dbname=$database;"; $dsn_Options = ; // PDO ഉപയോഗിച്ച് MySQL ഡാറ്റാബേസിലേക്ക് ഒരു പുതിയ കണക്ഷൻ സൃഷ്‌ടിക്കുക, $my_Db_Connection ഒരു ഒബ്‌ജക്റ്റ് ട്രൈ ആണ് ($my_Db_Connection = പുതിയ PDO($sql, $username, $password, $dsn_Options); പ്രതിധ്വനി "വിജയകരമായി ബന്ധിപ്പിച്ചു"; ) ക്യാച്ച് (PDOException പിശക്) (എക്കോ "കണക്ഷൻ പിശക്: ". $error->getMessage(); ) // $first_Name = "Thom" എന്ന ഡാറ്റാബേസിലേക്ക് നമ്മൾ ചേർക്കാൻ ആഗ്രഹിക്കുന്ന വ്യക്തിക്ക് വേരിയബിളുകൾ സജ്ജമാക്കുക; $last_Name = "Vial"; $ഇമെയിൽ = " [ഇമെയിൽ പരിരക്ഷിതം]"; // ഇവിടെ ഞങ്ങൾ ഡാറ്റാബേസ് ഒബ്‌ജക്റ്റിന്റെ തയ്യാറാക്കൽ () രീതിയെ വിളിക്കുന്ന ഒരു വേരിയബിൾ സൃഷ്‌ടിക്കുന്നു // നിങ്ങൾ പ്രവർത്തിപ്പിക്കാൻ ആഗ്രഹിക്കുന്ന SQL ചോദ്യം പാരാമീറ്ററായി നൽകി, കൂടാതെ പ്ലെയ്‌സ്‌ഹോൾഡറുകൾ ഇതുപോലെ എഴുതിയിരിക്കുന്നു: placeholder_name $my_Insert_Statement = $my_Db_Connection-> തയ്യാറാക്കുക ("വിദ്യാർത്ഥികളിലേക്ക് ചേർക്കുക (പേര്, അവസാന നാമം, ഇമെയിൽ) മൂല്യങ്ങൾ (:first_name, :last_name, :email)"); // ഓരോ പ്ലെയ്‌സ്‌ഹോൾഡറും യഥാർത്ഥത്തിൽ bindParam() രീതി ഉപയോഗിച്ച് ഏത് വേരിയബിളാണ് സൂചിപ്പിക്കുന്നതെന്ന് ഇപ്പോൾ ഞങ്ങൾ സ്‌ക്രിപ്റ്റിനോട് പറയുന്നു // ആദ്യം മുകളിലെ പ്രസ്താവനയിലെ പ്ലെയ്‌സ്‌ഹോൾഡറാണ് പാരാമീറ്റർ - രണ്ടാമത്തെ പാരാമീറ്റർ എന്നത് $my_Insert_Statement->bindParam (:first_name, $first_Name); $my_Insert_Statement->bindParam(:last_name, $last_Name) എന്നതിനെ പരാമർശിക്കേണ്ട ഒരു വേരിയബിളാണ്. bindParam(:email,$email); $my_Insert_Statement->എക്‌സിക്യൂട്ട്()) ( "പുതിയ റെക്കോർഡ് വിജയകരമായി സൃഷ്‌ടിച്ചു"; ) വേറെ (എക്കോ "റെക്കോർഡ് സൃഷ്‌ടിക്കാനായില്ല"; ) // ഈ ഘട്ടത്തിൽ നിങ്ങൾക്ക് വേരിയബിളുകളുടെ ഡാറ്റ മാറ്റി $first_Name = "ജോൺ" എന്ന ഡാറ്റാബേസിലേക്ക് കൂടുതൽ ഡാറ്റ ചേർക്കുന്നതിന് വീണ്ടും എക്സിക്യൂട്ട് ചെയ്യാം; $last_Name = "സ്മിത്ത്"; $ഇമെയിൽ = " [ഇമെയിൽ പരിരക്ഷിതം]"; $my_Insert_Statement-> execute(); // ($my_Insert_Statement->എക്‌സിക്യൂട്ട്()) (എക്കോ "പുതിയ റെക്കോർഡ് സൃഷ്‌ടിക്കപ്പെട്ടു"; ) അല്ലെങ്കിൽ (എക്കോ "റെക്കോർഡ് സൃഷ്‌ടിക്കാനായില്ല"; )

28, 29, 30 വരികളിൽ ഞങ്ങൾ രീതി ഉപയോഗിക്കുന്നു bindParam()ഡാറ്റാബേസ് ഒബ്ജക്റ്റ്. ഒരു രീതിയും ഉണ്ട് bindValue(), മുമ്പത്തേതിൽ നിന്ന് വ്യത്യസ്തമാണ്.

  • bindParam() –ഈ രീതി ഡാറ്റ കണക്കാക്കുന്നു എക്സിക്യൂട്ട് ()നേടിയത്. ആദ്യമായി സ്ക്രിപ്റ്റ് രീതിയിലേക്ക് എത്തുന്നു എക്സിക്യൂട്ട് ()അവൻ അത് കാണുന്നു $first_Nameറഫറൻസുകൾ "Thom", ആ മൂല്യം ബന്ധിപ്പിച്ച് ചോദ്യം നിർവ്വഹിക്കുന്നു. സ്ക്രിപ്റ്റ് രണ്ടാമത്തെ തവണ രീതിയിലേക്ക് എത്തുമ്പോൾ എക്സിക്യൂട്ട് (), അവൻ അത് നോക്കുന്നു $first_Nameഇപ്പോൾ റഫറൻസ് "ജോൺ", ആ മൂല്യം ബന്ധിപ്പിക്കുകയും പുതിയ മൂല്യം ഉപയോഗിച്ച് ചോദ്യം വീണ്ടും പ്രവർത്തിപ്പിക്കുകയും ചെയ്യുന്നു. ഞങ്ങൾ ഒരിക്കൽ അഭ്യർത്ഥന സൃഷ്‌ടിക്കുകയും പിന്നീട് സ്‌ക്രിപ്‌റ്റിലെ വ്യത്യസ്ത സ്ഥലങ്ങളിൽ വ്യത്യസ്ത ഡാറ്റ മാറ്റിസ്ഥാപിക്കുകയും ചെയ്യുന്നുവെന്ന് മനസ്സിലാക്കേണ്ടത് പ്രധാനമാണ്.
  • bindValue() –ഈ രീതി അതിന്റെ ഊഴം ലഭിച്ചാലുടൻ ഡാറ്റ കണക്കാക്കുന്നു. മൂല്യം മുതൽ $first_Nameഞങ്ങൾ മെത്തേഡിൽ എത്തിയ സമയത്ത് "തോം" ആയി സജ്ജീകരിച്ചു bindValue(), രീതി വിളിക്കുമ്പോൾ അത് ഉപയോഗിക്കും എക്സിക്യൂട്ട് ()വേണ്ടി $my_Insert_Statement.

ഞങ്ങൾ വേരിയബിൾ വീണ്ടും ഉപയോഗിക്കുന്നുവെന്നത് ശ്രദ്ധിക്കുക $first_Nameരണ്ടാമതും അതിന് ഒരു പുതിയ മൂല്യം നൽകുക. ഈ സ്ക്രിപ്റ്റ് പ്രവർത്തിപ്പിച്ചതിന് ശേഷം നിങ്ങളുടെ ഡാറ്റാബേസ് പരിശോധിച്ചാൽ, ഈ വേരിയബിൾ മൂല്യത്തിന് വിരുദ്ധമായി നൽകിയിരിക്കുന്ന രണ്ട് പേരുകളും ഉണ്ടാകും. $first_Nameഈ സ്ക്രിപ്റ്റിന്റെ അവസാനം "ജോൺ" എന്നതിന് തുല്യമായിരിക്കും. ഒരു സ്ക്രിപ്റ്റ് പ്രവർത്തിക്കുന്നതിന് മുമ്പ് PHP അതിന്റെ ഉള്ളടക്കം വിലയിരുത്തുന്നുവെന്ന് ഓർക്കുക.

മാറ്റി പകരം നിങ്ങളുടെ സ്ക്രിപ്റ്റ് മാറ്റുകയാണെങ്കിൽ bindParamഓൺ bindValue, നിങ്ങൾ MySQL ഡാറ്റാബേസിലേക്ക് "Thom Vial" രണ്ടുതവണ ചേർക്കും, ജോൺ സ്മിത്ത് അവഗണിക്കപ്പെടും.

ഘട്ടം 3 - വിജയം പരിശോധിച്ച് പൊതുവായ പ്രശ്നങ്ങൾ പരിഹരിക്കുക

MySQL ഡാറ്റാബേസിൽ ഞങ്ങൾ നടത്തിയ ചോദ്യം വിജയകരമാണെങ്കിൽ, ഞങ്ങൾ ഇനിപ്പറയുന്ന സന്ദേശം കാണും:

സാധാരണ പിശകുകൾ പരിഹരിക്കുന്നു

MySQLi

മറ്റേതെങ്കിലും സാഹചര്യത്തിൽ, മുകളിലുള്ള സന്ദേശത്തിന് പകരം ഒരു പിശക് സന്ദേശം കാണിക്കും. ഉദാഹരണത്തിന്, നമ്മുടെ കോഡിൽ ഒരു വാക്യഘടന പിശക് വരുത്താം, നമുക്ക് ഇത് ലഭിക്കും:

നമുക്ക് കാണാനാകുന്നതുപോലെ, കോഡിന്റെ ആദ്യഭാഗം മികച്ചതാണ്, കണക്ഷൻ വിജയകരമായി സ്ഥാപിച്ചു, പക്ഷേ എക്സിക്യൂട്ട് ചെയ്യുമ്പോൾ ഞങ്ങളുടെ SQL അന്വേഷണം പരാജയം നേരിട്ടു.

"പിശക്: വിദ്യാർത്ഥികളിലേക്ക് ചേർക്കുക (പേര്, അവസാന നാമം, ഇമെയിൽ) മൂല്യങ്ങൾ ("തോം", "വിയൽ", " [ഇമെയിൽ പരിരക്ഷിതം]") നിങ്ങളുടെ SQL വാക്യഘടനയിൽ നിങ്ങൾക്ക് ഒരു പിശകുണ്ട്; "(പേര്, അവസാന നാമം, ഇമെയിൽ) മൂല്യങ്ങൾ ("തോം", "വിയൽ", " എന്നിവയ്ക്ക് സമീപം ഉപയോഗിക്കുന്നതിന് ശരിയായ വാക്യഘടനയ്ക്കായി നിങ്ങളുടെ MySQL സെർവർ പതിപ്പുമായി പൊരുത്തപ്പെടുന്ന മാനുവൽ പരിശോധിക്കുക. [ഇമെയിൽ പരിരക്ഷിതം]")" വരി 1" ൽ

ഞങ്ങളുടെ സ്ക്രിപ്റ്റ് പരാജയപ്പെടുന്നതിന് കാരണമാകുന്ന ഒരു വാക്യഘടന പിശക് ഉണ്ടായിരുന്നു. പിശക് ഇവിടെയായിരുന്നു:

$sql = "വിദ്യാർത്ഥികളിലേക്ക് തിരുകുക (പേര്, അവസാന നാമം, ഇമെയിൽ) മൂല്യങ്ങൾ ("തോം", "വിയൽ", " [ഇമെയിൽ പരിരക്ഷിതം]")";

നിങ്ങൾക്ക് കാണാനാകുന്നതുപോലെ, ഞങ്ങൾ പരാൻതീസിസുകൾക്ക് പകരം ചുരുണ്ട ബ്രേസുകളാണ് ഉപയോഗിക്കുന്നത്. ഇത് തെറ്റാണ്, ഞങ്ങളുടെ സ്ക്രിപ്റ്റിൽ ഒരു വാക്യഘടന പിശകിന് കാരണമാകുന്നു.

പി.ഡി.ഒ

PDO കണക്ഷന്റെ 7-ാം വരിയിൽ, പിശക് കൈകാര്യം ചെയ്യൽ മോഡ് 'എല്ലാ ഒഴിവാക്കലുകളും പ്രദർശിപ്പിക്കുക' ആയി സജ്ജീകരിച്ചിരിക്കുന്നു. നിങ്ങൾ ഇത് സ്ക്രിപ്റ്റിൽ നിന്ന് നീക്കം ചെയ്യുകയും അഭ്യർത്ഥന പരാജയപ്പെടുകയും ചെയ്താൽ, നിങ്ങൾക്ക് ഒരു പിശക് സന്ദേശവും ലഭിക്കില്ല. ഒഴിവാക്കലുകൾ പ്രവർത്തനക്ഷമമാക്കിയാൽ, നേരിടുന്ന നിർദ്ദിഷ്ട പ്രശ്നങ്ങൾ പ്രദർശിപ്പിക്കും. നിങ്ങളുടെ ഡാറ്റയിലേക്ക് അനധികൃത ആക്സസ് നേടിയേക്കാവുന്ന ആരിൽ നിന്നും നിങ്ങൾ മറയ്ക്കാൻ ആഗ്രഹിക്കുന്ന ഡാറ്റാബേസും പട്ടികയുടെ പേരുകളും ഇത് വെളിപ്പെടുത്തിയേക്കാം എന്നതിനാൽ, ഒരു സ്ക്രിപ്റ്റ് വികസിപ്പിക്കുമ്പോൾ ഇത് സാധാരണയായി ഉപയോഗിക്കുന്നതാണ് നല്ലത്. മുകളിലുള്ള സാഹചര്യത്തിൽ, പരാൻതീസിസിനുപകരം ചുരുണ്ട ബ്രേസുകൾ ഉപയോഗിക്കുമ്പോൾ, പിശക് താഴെ കാണുന്നത് പോലെയാണ്:

മാരകമായ പിശക്: "SQLSTATE: സിന്റാക്സ് പിശക് അല്ലെങ്കിൽ ആക്സസ് ലംഘനം" എന്ന സന്ദേശത്തോടുകൂടിയ "PDOException" എന്ന അൺക്യുട്ട് എക്സപ്ഷൻ: 1064 നിങ്ങളുടെ SQL വാക്യഘടനയിൽ നിങ്ങൾക്ക് ഒരു പിശക് ഉണ്ട്; "(പേര്, അവസാന നാമം, ഇമെയിൽ) മൂല്യങ്ങൾ ("തോം", "വിയൽ", " എന്നിവയ്ക്ക് സമീപം ഉപയോഗിക്കുന്നതിന് ശരിയായ വാക്യഘടനയ്ക്കായി നിങ്ങളുടെ MySQL സെർവർ പതിപ്പുമായി പൊരുത്തപ്പെടുന്ന മാനുവൽ പരിശോധിക്കുക. [ഇമെയിൽ പരിരക്ഷിതം]")" വരി 1" ൽ

നിങ്ങൾ നേരിട്ടേക്കാവുന്ന മറ്റ് പ്രശ്നങ്ങൾ:

  • ഫീൽഡുകൾ തെറ്റായി വ്യക്തമാക്കിയിരിക്കുന്നു (നിലവിലില്ലാത്ത ഫീൽഡുകൾ അല്ലെങ്കിൽ അക്ഷരത്തെറ്റുള്ള പേരുകൾ).
  • മൂല്യ തരം ഫീൽഡ് തരവുമായി പൊരുത്തപ്പെടുന്നില്ല. ഉദാഹരണത്തിന്, ഒരു സംഖ്യയുടെ മൂല്യം നൽകണമെന്നുണ്ടെങ്കിൽ 47 വയൽ പേര്, മൂല്യം ഒരു സ്ട്രിംഗ് ആയിരിക്കുമെന്ന് പ്രതീക്ഷിക്കുന്നതിനാൽ ഞങ്ങൾക്ക് ഒരു പിശക് ലഭിക്കും. പക്ഷേ, നിങ്ങൾ ഉദ്ധരണികളിൽ ഒരു നമ്പർ വ്യക്തമാക്കുകയാണെങ്കിൽ, ഉദാഹരണത്തിന്, “47” , ഒരു പിശകും ഉണ്ടാകില്ല, കാരണം ഈ ഫീൽഡിൽ ഞങ്ങളുടെ നമ്പർ ഒരു സ്ട്രിംഗായി എഴുതപ്പെടും.
  • നിലവിലില്ലാത്ത ഒരു പട്ടികയിലേക്ക് ഡാറ്റ നൽകാനുള്ള ശ്രമം അല്ലെങ്കിൽ പട്ടികയുടെ പേര് അക്ഷരവിന്യാസത്തിലെ പിശക്.

പിശക് തിരുത്തൽ ഗൈഡുകൾ പിന്തുടർന്ന് അല്ലെങ്കിൽ പിശക് ലോഗ് പരിശോധിച്ച് ഈ പിശകുകളെല്ലാം പരിഹരിക്കാനാകും.

ഡാറ്റ വിജയകരമായി ചേർത്ത ശേഷം, അത് ഞങ്ങളുടെ ഡാറ്റാബേസിൽ കാണും. ഞങ്ങൾ ഡാറ്റ ചേർത്ത പട്ടികയുടെ ഒരു ഉദാഹരണം ഇതാ phpMyAdmin.

ഉപസംഹാരം

ഈ ട്യൂട്ടോറിയലിൽ നിങ്ങൾ എങ്ങനെ ഉപയോഗിക്കണമെന്ന് പഠിച്ചു MySQL പട്ടികയിലേക്ക് ഒരു റെക്കോർഡ് ചേർക്കുന്നതിനുള്ള PHP കോഡ്ഉപയോഗിക്കുന്നത് MySQLiഒപ്പം പി.ഡി.ഒ. പൊതുവായ പിശകുകളും അവയുടെ പരിഹാരങ്ങളും ഞങ്ങൾ പരിശോധിച്ചു. ഒരു MySQL ഡാറ്റാബേസിലേക്ക് ചേർക്കുന്നതിന് PHP കോഡ് എങ്ങനെ ഉപയോഗിക്കണമെന്ന് അറിയുന്നത്, നിങ്ങൾ പ്രോഗ്രാം ചെയ്യാൻ പഠിക്കുകയാണെങ്കിലും അല്ലെങ്കിൽ ഇതിനകം തന്നെ നിങ്ങളുടെ സ്വന്തം വെബ്സൈറ്റ് സൃഷ്ടിക്കുകയാണെങ്കിലും ഉപയോഗപ്രദമാകും.

ഈ ലേഖനത്തിൽ, ഒരു MySQL ഡാറ്റാബേസിലേക്ക് വരികൾ തിരുകാൻ PHP എങ്ങനെ ഉപയോഗിക്കാമെന്ന് നോക്കാം.

ഘട്ടം 1 - ഒരു പട്ടിക ഉണ്ടാക്കുന്നു

ആദ്യം നിങ്ങൾ ഡാറ്റയ്ക്കായി ഒരു പട്ടിക സൃഷ്ടിക്കേണ്ടതുണ്ട്. നിങ്ങളുടെ ഹോസ്റ്റിംഗ് കൺട്രോൾ പാനലിൽ phpMyAdmin ഉപയോഗിച്ച് ചെയ്യാവുന്ന ഒരു ലളിതമായ നടപടിക്രമമാണിത്.

phpMyAdmin-ലേക്ക് ലോഗിൻ ചെയ്ത ശേഷം നിങ്ങൾ ഈ ഇന്റർഫേസ് കാണും:

u266072517_name ഡാറ്റാബേസിൽ “പട്ടിക സൃഷ്‌ടിക്കുക” ബട്ടണിൽ ക്ലിക്കുചെയ്‌ത് വിദ്യാർത്ഥികൾ എന്ന പേരിൽ ഒരു ടേബിൾ സൃഷ്‌ടിക്കാം. ഇതിനുശേഷം, ആവശ്യമായ എല്ലാ ടേബിൾ പാരാമീറ്ററുകളും ഞങ്ങൾ സജ്ജമാക്കുന്ന ഒരു പുതിയ പേജ് ഞങ്ങൾ കാണും:

ഒരു ടേബിളിൽ ഉപയോഗിക്കാവുന്ന ഏറ്റവും ലളിതമായ ക്രമീകരണമാണിത്, പട്ടിക/ഡാറ്റാബേസ് ഘടനയെക്കുറിച്ചുള്ള കൂടുതൽ വിവരങ്ങൾ ലഭിക്കും.

നിര ഓപ്ഷനുകൾ:

  • പട്ടികയുടെ മുകളിൽ ദൃശ്യമാകുന്ന കോളത്തിന്റെ പേരാണ് പേര്.
  • തരം - നിര തരം. ഉദാഹരണത്തിന്, ഞങ്ങൾ സ്‌ട്രിംഗ് മൂല്യങ്ങൾ നൽകുന്നതിനാൽ ഞങ്ങൾ varchar തിരഞ്ഞെടുത്തു.
  • ദൈർഘ്യം/മൂല്യങ്ങൾ - ഈ നിരയിലെ ഒരു എൻട്രിക്ക് ഉണ്ടായിരിക്കാവുന്ന പരമാവധി ദൈർഘ്യം വ്യക്തമാക്കാൻ ഉപയോഗിക്കുന്നു.
  • സൂചിക - "ഐഡി" ഫീൽഡിനായി ഞങ്ങൾ "പ്രാഥമിക" സൂചിക ഉപയോഗിച്ചു. ഒരു പട്ടിക സൃഷ്ടിക്കുമ്പോൾ, പ്രാഥമിക കീയായി ഒരു കോളം മാത്രം ഉപയോഗിക്കാൻ ശുപാർശ ചെയ്യുന്നു. പട്ടികയിലെ റെക്കോർഡുകൾ പട്ടികപ്പെടുത്താൻ ഇത് ഉപയോഗിക്കുന്നു, പട്ടിക സജ്ജീകരിക്കുമ്പോൾ അത് ആവശ്യമാണ്. റെക്കോർഡ് നമ്പറുകൾ സ്വയമേവ അസൈൻ ചെയ്യുന്നതിനുള്ള പരാമീറ്റർ (1,2,3,4...) - "A_I" എന്നതും ഞാൻ ശ്രദ്ധിച്ചു, അതായത് "ഓട്ടോ ഇൻക്രിമെന്റ്".
    "സംരക്ഷിക്കുക" ബട്ടൺ ക്ലിക്ക് ചെയ്യുക, പട്ടിക സൃഷ്ടിക്കപ്പെടും.

ഘട്ടം 2: MySQL-ലേക്ക് ഡാറ്റ ചേർക്കുന്നതിന് PHP കോഡ് എഴുതുക.

ഓപ്ഷൻ 1 - MySQLi രീതി

ആദ്യം നിങ്ങൾ ഡാറ്റാബേസിലേക്ക് ഒരു കണക്ഷൻ സ്ഥാപിക്കേണ്ടതുണ്ട്. ഇതിനുശേഷം ഞങ്ങൾ SQL INSERT ചോദ്യം ഉപയോഗിക്കുന്നു. പൂർണ്ണ കോഡ് ഉദാഹരണം:

". mysqli_error($conn); ) mysqli_close($conn); ?>

കോഡിന്റെ ആദ്യ ഭാഗം (ലൈൻ 3 - 18) ഡാറ്റാബേസുമായി ബന്ധിപ്പിക്കാൻ ഉദ്ദേശിച്ചുള്ളതാണ്.

ലൈൻ നമ്പർ 19 ൽ നമുക്ക് ആരംഭിക്കാം:

$sql = "വിദ്യാർത്ഥികളിലേക്ക് തിരുകുക (പേര്, അവസാന നാമം, ഇമെയിൽ) മൂല്യങ്ങൾ ("തോം", "വിയൽ", " [ഇമെയിൽ പരിരക്ഷിതം]")";

ഇത് MySQL ഡാറ്റാബേസിലേക്ക് ഡാറ്റ ചേർക്കുന്നു. INSERT INTO എന്നത് ഒരു നിർദ്ദിഷ്ട പട്ടികയിലേക്ക് ഡാറ്റ ചേർക്കുന്ന ഒരു പ്രസ്താവനയാണ്. ഞങ്ങളുടെ ഉദാഹരണത്തിൽ, വിദ്യാർത്ഥികളുടെ പട്ടികയിലേക്ക് ഡാറ്റ ചേർത്തു.

അടുത്തത് മൂല്യങ്ങൾ ചേർത്ത നിരകളുടെ ഒരു ലിസ്റ്റ് ആണ്: പേര്, അവസാന നാമം, ഇമെയിൽ. നിർദ്ദിഷ്ട ക്രമത്തിൽ ഡാറ്റ ചേർക്കും. ഞങ്ങൾ എഴുതിയിരുന്നെങ്കിൽ (ഇമെയിൽ, അവസാന നാമം, പേര്), മൂല്യങ്ങൾ മറ്റൊരു ക്രമത്തിൽ ചേർക്കുമായിരുന്നു.

അടുത്ത ഭാഗം VALUES പ്രസ്താവനയാണ്. ഇവിടെ ഞങ്ങൾ നിരകൾക്കുള്ള മൂല്യങ്ങൾ വ്യക്തമാക്കുന്നു: പേര് = തോം, അവസാന നാമം = വിയൽ, ഇമെയിൽ = [ഇമെയിൽ പരിരക്ഷിതം].

PHP കോഡ് ഉപയോഗിച്ചാണ് ഞങ്ങൾ അഭ്യർത്ഥന നടത്തിയത്. പ്രോഗ്രാം കോഡിൽ, SQL അന്വേഷണങ്ങൾ ഉദ്ധരണികളോടെ ഒഴിവാക്കണം. ഞങ്ങളുടെ അഭ്യർത്ഥന വിജയിച്ചോ എന്ന് അടുത്ത കോഡ് (ലൈൻ 20-22) പരിശോധിക്കുന്നു:

എങ്കിൽ (mysqli_query($conn, $sql)) (എക്കോ "പുതിയ റെക്കോർഡ് വിജയകരമായി സൃഷ്ടിച്ചു"; )

അഭ്യർത്ഥന വിജയിച്ചുവെന്ന് സൂചിപ്പിക്കുന്ന ഒരു സന്ദേശം ഈ കോഡ് പ്രദർശിപ്പിക്കുന്നു.

അഭ്യർത്ഥന വിജയിച്ചില്ലെങ്കിൽ അവസാന ഭാഗം (ലൈൻ 22 - 24) ഒരു അറിയിപ്പ് പ്രദർശിപ്പിക്കുന്നു:

വേറെ (എക്കോ "പിശക്:" . $sql . "
". mysqli_error($conn); )

ഓപ്ഷൻ 2 - PHP ഡാറ്റ ഒബ്ജക്റ്റ് (PDO) രീതി

ആദ്യം നമ്മൾ ഒരു പുതിയ PDO ഒബ്‌ജക്റ്റ് സൃഷ്‌ടിച്ച് ഡാറ്റാബേസിലേക്ക് കണക്റ്റുചെയ്യേണ്ടതുണ്ട്. അതുമായി പ്രവർത്തിക്കുമ്പോൾ ഞങ്ങൾ വിവിധ PDO രീതികൾ ഉപയോഗിക്കും. ഒബ്ജക്റ്റ് രീതികളെ ഇനിപ്പറയുന്ന രീതിയിൽ വിളിക്കുന്നു:

$the_Object->The_Method();

SQL കോഡ് നടപ്പിലാക്കുന്നതിന് മുമ്പ് "തയ്യാറാക്കാൻ" PDO നിങ്ങളെ അനുവദിക്കുന്നു. പ്രവർത്തിപ്പിക്കുന്നതിന് മുമ്പ് SQL അന്വേഷണം വിലയിരുത്തുകയും "തിരുത്തുകയും" ചെയ്യുന്നു. ഉദാഹരണത്തിന്, ഒരു ഫോം ഫീൽഡിൽ SQL കോഡ് നൽകിക്കൊണ്ട് ലളിതമായ ഒരു SQL കുത്തിവയ്പ്പ് ആക്രമണം നടത്താം. ഉദാഹരണത്തിന്:

ഇത് വാക്യഘടനാപരമായി ശരിയായ SQL ആയതിനാൽ, അർദ്ധവിരാമം DROP DATABASE user_table-നെ ഒരു പുതിയ SQL അന്വേഷണമാക്കി മാറ്റുകയും ഉപയോക്തൃ പട്ടിക ഡ്രോപ്പ് ചെയ്യുകയും ചെയ്യുന്നു. തയ്യാറാക്കിയ എക്സ്പ്രഷനുകൾ (ബൗണ്ട് വേരിയബിളുകൾ) യഥാർത്ഥ ചോദ്യം അവസാനിപ്പിക്കാൻ അർദ്ധവിരാമങ്ങളെയും ഉദ്ധരണികളെയും അനുവദിക്കുന്നില്ല.

തയ്യാറാക്കിയ എക്സ്പ്രഷനുകൾ ഉപയോഗിക്കുന്നതിന്, ഡാറ്റാബേസ് ഒബ്ജക്റ്റിന്റെ തയ്യാറാക്കൽ () രീതിയെ വിളിക്കുന്ന ഒരു പുതിയ വേരിയബിൾ നിങ്ങൾ എഴുതേണ്ടതുണ്ട്.

ശരിയായ കോഡ്:

getMessage(); ) // $first_Name = "Thom" എന്ന ഡാറ്റാബേസിലേക്ക് നമ്മൾ ചേർക്കാൻ ആഗ്രഹിക്കുന്ന വ്യക്തിക്ക് വേരിയബിളുകൾ സജ്ജമാക്കുക; $last_Name = "Vial"; $ഇമെയിൽ = " [ഇമെയിൽ പരിരക്ഷിതം]"; // ഡാറ്റാബേസ് ഒബ്‌ജക്റ്റിന്റെ തയ്യാറാക്കൽ() രീതിയെ വിളിക്കുന്ന ഒരു വേരിയബിൾ സൃഷ്‌ടിക്കുക // നിങ്ങൾ പ്രവർത്തിപ്പിക്കാൻ ആഗ്രഹിക്കുന്ന SQL അന്വേഷണം ഒരു പാരാമീറ്ററായി നൽകി, കൂടാതെ പ്ലെയ്‌സ്‌ഹോൾഡറുകൾ ഇതുപോലെ എഴുതിയിരിക്കുന്നു: placeholder_name $my_Insert_Statement = $my_Db_Connection->തയ്യാറുക(" വിദ്യാർത്ഥികളിലേക്ക് തിരുകുക (പേര്, അവസാന നാമം, ഇമെയിൽ) മൂല്യങ്ങൾ (:first_name, :last_name, :email)"); // bindParam() രീതി ഉപയോഗിക്കുന്നതിന് ഓരോ പ്ലെയ്‌സ്‌ഹോൾഡറിനെയും ഏത് വേരിയബിളാണ് സൂചിപ്പിക്കുന്നതെന്ന് ഞങ്ങൾ ഇപ്പോൾ സ്‌ക്രിപ്റ്റിനോട് പറയുന്നു // ആദ്യ പാരാമീറ്റർ ഇതാണ് മുകളിലെ പ്രസ്‌താവനയിലെ പ്ലെയ്‌സ്‌ഹോൾഡർ, രണ്ടാമത്തേത് $my_Insert_Statement->bindParam (:first_name, $first_Name); $my_Insert_Statement->bindParam(:last_name, $last_Name); $my_Insert_StataramP , $email); // ഞങ്ങൾ ഇപ്പോൾ നിർവചിച്ച ഡാറ്റ ഉപയോഗിച്ച് ചോദ്യം എക്സിക്യൂട്ട് ചെയ്യുക // എക്സിക്യൂട്ട്() രീതി വിജയകരമാണെങ്കിൽ TRUE എന്നും ഇല്ലെങ്കിൽ FALSE എന്നും നൽകുന്നു, നിങ്ങളുടേതായ if സന്ദേശം പ്രിന്റ് ചെയ്യാനുള്ള ഓപ്ഷൻ നൽകുന്നു ($my_Insert_Statement->execute() ) (എക്കോ "പുതിയ റെക്കോർഡ് വിജയകരമായി സൃഷ്ടിച്ചു"; ) അല്ലെങ്കിൽ (എക്കോ "റെക്കോർഡ് സൃഷ്‌ടിക്കാനായില്ല"; ) // ഈ ഘട്ടത്തിൽ നിങ്ങൾക്ക് വേരിയബിൾ ഡാറ്റ മാറ്റാനും ഡാറ്റാബേസ് ഡാറ്റയിലേക്ക് കൂടുതൽ ഡാറ്റ ചേർക്കുന്നതിന് ഒരു അന്വേഷണം പ്രവർത്തിപ്പിക്കാനും $first_Name = "ജോൺ"; $last_Name = "സ്മിത്ത്"; $ഇമെയിൽ = " [ഇമെയിൽ പരിരക്ഷിതം];

28, 29, 30 വരികളിൽ ഞങ്ങൾ ഡാറ്റാബേസ് ഒബ്ജക്റ്റിന്റെ bindParam() രീതി ഉപയോഗിക്കുന്നു. ഒരു bindValue() രീതിയും ഉണ്ട്, അത് മുമ്പത്തേതിൽ നിന്ന് വളരെ വ്യത്യസ്തമാണ്.

  • bindParam() - എക്സിക്യൂട്ട് () രീതി എത്തുമ്പോൾ ഈ രീതി ഡാറ്റയെ വിലയിരുത്തുന്നു. സ്‌ക്രിപ്റ്റ് ആദ്യമായി എക്‌സിക്യൂട്ട്() രീതിയിലേക്ക് എത്തുമ്പോൾ, $first_Name "Thom" എന്നതുമായി പൊരുത്തപ്പെടുന്നതായി കാണുന്നു. തുടർന്ന് ഈ മൂല്യം ബന്ധിപ്പിച്ച് അഭ്യർത്ഥന പ്രവർത്തിപ്പിക്കുക. സ്ക്രിപ്റ്റ് രണ്ടാമത്തെ എക്സിക്യൂട്ട്() രീതിയിൽ എത്തുമ്പോൾ, $first_Name ഇപ്പോൾ "ജോൺ" എന്നതുമായി പൊരുത്തപ്പെടുന്നതായി കാണുന്നു. തുടർന്ന് അത് ഈ മൂല്യത്തെ ബന്ധിപ്പിക്കുകയും പുതിയ മൂല്യങ്ങൾ ഉപയോഗിച്ച് ചോദ്യം വീണ്ടും പ്രവർത്തിപ്പിക്കുകയും ചെയ്യുന്നു. ഞങ്ങൾ ഒരു ചോദ്യം ഒരിക്കൽ നിർവചിച്ചിട്ടുണ്ടെന്നും സ്ക്രിപ്റ്റിലെ വ്യത്യസ്ത പോയിന്റുകളിൽ വ്യത്യസ്ത ഡാറ്റ ഉപയോഗിച്ച് അത് വീണ്ടും ഉപയോഗിക്കുമെന്നും ഓർമ്മിക്കേണ്ടത് പ്രധാനമാണ്.
  • bindValue() - bindValue() എത്തിക്കഴിഞ്ഞാൽ ഈ രീതി ഡാറ്റയെ വിലയിരുത്തുന്നു. $first_Name "Thom" ആയി സജ്ജീകരിച്ചിരിക്കുന്നതിനാൽ, bindValue() എത്തുമ്പോൾ, $my_Insert_Statement-ൽ എക്സിക്യൂട്ട്() രീതി വിളിക്കുമ്പോഴെല്ലാം അത് ഉപയോഗിക്കും.
    ഞങ്ങൾ $first_Name വേരിയബിൾ വീണ്ടും ഉപയോഗിക്കുകയും രണ്ടാം തവണ അതിന് ഒരു പുതിയ മൂല്യം നൽകുകയും ചെയ്യുന്നു എന്നത് ശ്രദ്ധിക്കുക. സ്ക്രിപ്റ്റ് പ്രവർത്തിപ്പിച്ചതിന് ശേഷം, രണ്ട് പേരുകളും ഡാറ്റാബേസിൽ ലിസ്റ്റ് ചെയ്യപ്പെടും, സ്ക്രിപ്റ്റിന്റെ അറ്റത്തുള്ള $first_Name വേരിയബിളിന് "John" എന്ന മൂല്യമുണ്ടെങ്കിലും. PHP പ്രവർത്തിക്കുന്നതിന് മുമ്പ് മുഴുവൻ സ്ക്രിപ്റ്റും പരിശോധിക്കുമെന്ന് ഓർമ്മിക്കുക.

bindParam-ന് പകരം bindValue ഉപയോഗിച്ച് സ്‌ക്രിപ്റ്റ് അപ്‌ഡേറ്റ് ചെയ്യുകയാണെങ്കിൽ, നിങ്ങൾ "Thom Vial" രണ്ട് തവണ ഡാറ്റാബേസിലേക്ക് തിരുകുകയും ജോൺ സ്മിത്ത് അവഗണിക്കപ്പെടുകയും ചെയ്യും.

ഘട്ടം 3 - വിജയം സ്ഥിരീകരിക്കുകയും പ്രശ്നങ്ങൾ പരിഹരിക്കുകയും ചെയ്യുക

ഡാറ്റാബേസിലേക്ക് വരികൾ ചേർക്കാനുള്ള അഭ്യർത്ഥന വിജയകരമാണെങ്കിൽ, ഞങ്ങൾ ഇനിപ്പറയുന്ന സന്ദേശം കാണും:

പൊതുവായ പിശകുകൾ പരിഹരിക്കുന്നു

MySQLi

മറ്റേതെങ്കിലും സാഹചര്യത്തിൽ, ഒരു പിശക് സന്ദേശം പ്രദർശിപ്പിക്കും. ഉദാഹരണത്തിന്, നമുക്ക് കോഡിൽ ഒരു വാക്യഘടന പിശക് വരുത്താം, നമുക്ക് ഇനിപ്പറയുന്നവ ലഭിക്കും:

കോഡിന്റെ ആദ്യ ഭാഗം ശരിയാണ്, കണക്ഷൻ വിജയകരമായി സ്ഥാപിച്ചു, പക്ഷേ SQL അന്വേഷണം പരാജയപ്പെട്ടു.

"പിശക്: വിദ്യാർത്ഥികളിലേക്ക് ചേർക്കുക (പേര്, അവസാന നാമം, ഇമെയിൽ) മൂല്യങ്ങൾ ("തോം", "വിയൽ", " [ഇമെയിൽ പരിരക്ഷിതം]") നിങ്ങളുടെ SQL വാക്യഘടനയിൽ നിങ്ങൾക്ക് ഒരു പിശകുണ്ട്; "(പേര്, അവസാന നാമം, ഇമെയിൽ) മൂല്യങ്ങൾ ("തോം", "വിയൽ", " എന്നിവയ്ക്ക് സമീപം ഉപയോഗിക്കുന്നതിനുള്ള അവകാശ വാക്യഘടനയ്ക്കായി നിങ്ങളുടെ MySQL സെർവർ പതിപ്പിന് അനുയോജ്യമായ മാനുവൽ പരിശോധിക്കുക. [ഇമെയിൽ പരിരക്ഷിതം]")" വരി 1" ൽ

സ്ക്രിപ്റ്റ് തകരാറിലായ ഒരു വാക്യഘടന പിശക് സംഭവിച്ചു. പിശക് ഇവിടെയായിരുന്നു:

$sql = "വിദ്യാർത്ഥികളിലേക്ക് തിരുകുക (പേര്, അവസാന നാമം, ഇമെയിൽ) മൂല്യങ്ങൾ ("തോം", "വിയൽ", " [ഇമെയിൽ പരിരക്ഷിതം]")";

സാധാരണയുള്ളവയ്ക്ക് പകരം ഞങ്ങൾ ചുരുണ്ട ബ്രേസുകൾ ഉപയോഗിച്ചു. ഇത് തെറ്റാണ്, സ്ക്രിപ്റ്റ് ഒരു വാക്യഘടന പിശക് സൃഷ്ടിച്ചു.

പി.ഡി.ഒ

PDO കണക്ഷന്റെ ലൈൻ 7 "എല്ലാ ഒഴിവാക്കലുകളും പ്രദർശിപ്പിക്കുക" എന്ന പിശക് മോഡ് സജ്ജമാക്കുന്നു. മറ്റൊരു മൂല്യത്തിലേക്ക് സജ്ജീകരിച്ച് അഭ്യർത്ഥന പരാജയപ്പെട്ടാൽ, ഞങ്ങൾക്ക് പിശക് സന്ദേശങ്ങളൊന്നും ലഭിക്കില്ല.

ഒരു സ്ക്രിപ്റ്റ് വികസിപ്പിക്കുമ്പോൾ മാത്രമേ ഈ ക്രമീകരണം ഉപയോഗിക്കാവൂ. സജീവമാകുമ്പോൾ, സുരക്ഷാ കാരണങ്ങളാൽ ഏറ്റവും നന്നായി മറച്ചിരിക്കുന്ന ഡാറ്റാബേസ്, പട്ടിക നാമങ്ങൾ പ്രദർശിപ്പിച്ചേക്കാം. മുകളിൽ വിവരിച്ച സാഹചര്യത്തിൽ, സാധാരണ ബ്രേസുകൾക്ക് പകരം ചുരുണ്ട ബ്രേസുകൾ ഉപയോഗിക്കുമ്പോൾ, പിശക് സന്ദേശം ഇതുപോലെ കാണപ്പെടുന്നു:

മാരകമായ പിശക്: "SQLSTATE: വാക്യഘടന പിശക് അല്ലെങ്കിൽ പ്രവേശന ലംഘനം: 1064 നിങ്ങളുടെ SQL വാക്യഘടനയിൽ നിങ്ങൾക്ക് ഒരു പിശക് ഉണ്ട്; "(പേര്, അവസാന നാമം, ഇമെയിൽ) മൂല്യങ്ങൾ ("തോം", "വിയൽ", " എന്നിവയ്ക്ക് സമീപം ഉപയോഗിക്കുന്നതിന് റൈറ്റ് സിന്റാക്സിനായി നിങ്ങളുടെ MySQL സെർവർ പതിപ്പുമായി പൊരുത്തപ്പെടുന്ന മാനുവൽ പരിശോധിക്കുക [ഇമെയിൽ പരിരക്ഷിതം]")" വരി 1" ൽ

സാധ്യമായ മറ്റ് പ്രശ്നങ്ങൾ:

  • നിരകൾ തെറ്റായി വ്യക്തമാക്കിയിരിക്കുന്നു (നിലവിലില്ലാത്ത കോളങ്ങൾ അല്ലെങ്കിൽ തെറ്റായി എഴുതിയ കോളം പേരുകൾ).
  • ഒരു മൂല്യ തരം മറ്റൊരു തരത്തിന്റെ ഒരു നിരയിലേക്ക് അസൈൻ ചെയ്‌തിരിക്കുന്നു. ഉദാഹരണത്തിന്, നിങ്ങൾ പേര് കോളത്തിൽ 47 നമ്പർ ചേർക്കാൻ ശ്രമിക്കുകയാണെങ്കിൽ, നിങ്ങൾക്ക് ഒരു പിശക് ലഭിക്കും. ഈ കോളം ഒരു സ്ട്രിംഗ് മൂല്യം ഉപയോഗിക്കണം. എന്നാൽ ഞങ്ങൾ ഉദ്ധരണികളിൽ ഒരു നമ്പർ വ്യക്തമാക്കിയാൽ (ഉദാഹരണത്തിന്, "47") അത് പ്രവർത്തിക്കും, കാരണം അതൊരു സ്ട്രിംഗ് ആണ്.
  • നിലവിലില്ലാത്ത ഒരു പട്ടികയിലേക്ക് ഡാറ്റ നൽകാനുള്ള ശ്രമം നടത്തി. പട്ടികയുടെ പേരിൽ അക്ഷരത്തെറ്റും ഉണ്ടായിരുന്നു.

ഡാറ്റ വിജയകരമായി നൽകിയ ശേഷം, അത് ഡാറ്റാബേസിലേക്ക് ചേർത്തതായി നമുക്ക് കാണാം. ഡാറ്റ ചേർത്ത ഒരു പട്ടികയുടെ ഒരു ഉദാഹരണം ചുവടെയുണ്ട്.

അവസാന അപ്ഡേറ്റ്: 11/1/2015

ഡാറ്റ ചേർക്കാൻ, "INSERT" എക്സ്പ്രഷൻ ഉപയോഗിക്കുക:

$query = "ചരക്കുകളുടെ മൂല്യങ്ങളിലേക്ക് തിരുകുക(NULL, "Samsung Galaxy III","Samsumg"");

"INSERT" പ്രസ്താവന ഒരു പട്ടികയിൽ ഒരൊറ്റ വരി ചേർക്കുന്നു. INTO കീവേഡിന് ശേഷം, പട്ടികയുടെ പേര് സൂചിപ്പിച്ചിരിക്കുന്നു, കൂടാതെ VALUES-ന് ശേഷം, എല്ലാ കോളങ്ങൾക്കുമുള്ള മൂല്യങ്ങളുടെ കൂട്ടം പരാൻതീസിസിൽ സൂചിപ്പിച്ചിരിക്കുന്നു. പട്ടികയിൽ മൂന്ന് നിരകൾ ഉള്ളതിനാൽ, ഞങ്ങൾ മൂന്ന് മൂല്യങ്ങൾ സൂചിപ്പിക്കുന്നു.

മുമ്പത്തെ വിഷയത്തിൽ, ഒരു പട്ടിക സൃഷ്ടിക്കുമ്പോൾ, ഞങ്ങൾ ഇനിപ്പറയുന്ന നിരകളുടെ ക്രമം വ്യക്തമാക്കിയതിനാൽ: ഐഡി, പേര്, കമ്പനി, ഈ സാഹചര്യത്തിൽ ഐഡി കോളത്തിന് മൂല്യം NULL, പേരിന് "Samsung Galaxy III", "Samsumg" എന്നിവ നൽകുന്നു. കമ്പനിക്ക്.

ഐഡി കോളം AUTO_INCREMENT ആയി നിർവചിച്ചിരിക്കുന്നതിനാൽ, ഞങ്ങൾ അതിന് ഒരു നിർദ്ദിഷ്ട സംഖ്യാ മൂല്യം നൽകേണ്ടതില്ല, കൂടാതെ ഒരു NULL മൂല്യം നൽകാനും MySQL കോളത്തിന് അടുത്ത ലഭ്യമായ മൂല്യം നൽകുകയും ചെയ്യും.

ഇനി നമുക്ക് ഒരു ഉദാഹരണം ഉപയോഗിച്ച് ഡാറ്റ ചേർക്കുന്നത് നോക്കാം. നമുക്ക് ഒരു ഫയൽ ഉണ്ടാക്കാം create.phpഇനിപ്പറയുന്ന ഉള്ളടക്കത്തോടൊപ്പം:

ഡാറ്റ ചേർത്തു"; ) // കണക്ഷൻ അടയ്ക്കുക mysqli_close($link); ) ?>

പുതിയ മോഡൽ ചേർക്കുക

മോഡൽ നൽകുക:

നിർമ്മാതാവ്:



ഇവിടെ, ഡാറ്റാബേസുമായി സംവദിക്കുന്നതിനുള്ള കോഡ് ഫോമുകളുടെ പ്രവർത്തനവുമായി സംയോജിപ്പിച്ചിരിക്കുന്നു: ഫോം ഉപയോഗിച്ച്, ഡാറ്റാബേസിലേക്ക് ചേർക്കാൻ ഞങ്ങൾ ഡാറ്റ നൽകുന്നു.

സുരക്ഷയും MySQL

ഇവിടെ നമ്മൾ mysqli_real_escape_string() ഫംഗ്‌ഷൻ ഉപയോഗിച്ചു. ഒരു സ്ട്രിംഗിലെ പ്രതീകങ്ങളിൽ നിന്ന് രക്ഷപ്പെടാൻ ഇത് ഉപയോഗിക്കുന്നു, അത് പിന്നീട് ഒരു SQL അന്വേഷണത്തിൽ ഉപയോഗിക്കുന്നു. ഒരു കണക്ഷൻ ഒബ്ജക്റ്റും എസ്കേപ്പ് ചെയ്യാനുള്ള ഒരു സ്ട്രിംഗും പാരാമീറ്ററുകളായി എടുക്കുന്നു.

അതിനാൽ, നമ്മൾ യഥാർത്ഥത്തിൽ രണ്ട് തവണ ക്യാരക്ടർ എസ്കേപ്പ് ഉപയോഗിക്കുന്നു: ആദ്യം mysqli_real_escape_string() ഫംഗ്ഷൻ ഉപയോഗിച്ച് sql എക്സ്പ്രഷനും തുടർന്ന് html-ന് htmlentities() ഫംഗ്ഷൻ ഉപയോഗിക്കുന്നു. ഒരേസമയം രണ്ട് തരത്തിലുള്ള ആക്രമണങ്ങളിൽ നിന്ന് സ്വയം പരിരക്ഷിക്കാൻ ഇത് ഞങ്ങളെ അനുവദിക്കും: XSS ആക്രമണങ്ങളും SQL കുത്തിവയ്പ്പുകളും.

നൽകുകയും ചെയ്തു
. ഇപ്പോൾ നമ്മൾ എങ്ങനെ സംസാരിക്കും PHP ഉപയോഗിച്ച് ഫോം വഴി MySQL ഡാറ്റാബേസിലേക്ക് ചിത്രങ്ങൾ ചേർക്കുക.

ഒരു ചിത്രം ചേർക്കുന്നതിന് MySQL ഡാറ്റാബേസിൽ ഒരു ഫീൽഡ് സൃഷ്ടിക്കുന്നു

ആരംഭിക്കുന്നതിന്, അതിനായി ഞാൻ പറയാൻ ആഗ്രഹിക്കുന്നു MySQL ഡാറ്റാബേസിൽ ചിത്രങ്ങൾ സൂക്ഷിക്കുന്നു BLOB തരത്തിന്റെ ഡെറിവേറ്റീവായി പട്ടിക ഫീൽഡുകളിലൊന്ന് നിർവ്വചിക്കേണ്ടത് ആവശ്യമാണ്.

BLOB എന്ന ചുരുക്കെഴുത്ത് ബൈനറി വലിയ വസ്തുവിനെ സൂചിപ്പിക്കുന്നു. BLOB ഡാറ്റ സ്റ്റോറേജ് തരത്തിന് നിരവധി ഓപ്ഷനുകൾ ഉണ്ട്:

  • TINYBLOB - 255 ബൈറ്റുകൾ വരെ സംഭരിക്കാൻ കഴിയും
  • BLOB-ന് 64 കിലോബൈറ്റ് വിവരങ്ങൾ സംഭരിക്കാൻ കഴിയും
  • മീഡിയംബ്ലോബ് - 16 മെഗാബൈറ്റ് വരെ
  • 4 ജിഗാബൈറ്റ് വരെ LONGBLOB

വേണ്ടി ഒരു ഡാറ്റാബേസിൽ ഒരു ഇമേജ് ഫയൽ സൂക്ഷിക്കുന്നുനിങ്ങൾ ഒരു വേരിയബിളിലേക്ക് ഫയൽ വായിച്ച് പട്ടികയിലേക്ക് ഡാറ്റ ചേർക്കുന്നതിന് ഒരു ചോദ്യം സൃഷ്ടിക്കേണ്ടതുണ്ട്.

MySQL ഡാറ്റാബേസിലേക്ക് ഒരു ചിത്രം ചേർക്കുന്നതിന് പേജിൽ ഒരു ഫോം തയ്യാറാക്കുന്നു

എന്റെ കാര്യത്തിൽ ടാസ്ക് ആയിരുന്നു PHP ഉപയോഗിച്ച് ഒരു ഫോം വഴി ഡാറ്റാബേസിലേക്ക് രണ്ട് ചിത്രങ്ങൾ ചേർക്കുക. ഞങ്ങൾക്ക് രണ്ട് ഫീൽഡുകളുള്ള ഒരു ഫോമും സമർപ്പിക്കാനുള്ള ബട്ടണും ഉണ്ട്:

ഫോം പേര്=”form1″ method=”post” action=”add_image.php”
enctype="multipart/form-data"

ആട്രിബ്യൂട്ട് എന്ന് ഞാൻ നിങ്ങളെ ഓർമ്മിപ്പിക്കട്ടെ നടപടിഇമേജ് ഫയലുകൾ ലോഡ് ചെയ്യുന്ന ഫയൽ വ്യക്തമാക്കുന്നു. ആട്രിബ്യൂട്ട് എൻക്‌ടൈപ്പ്ഫോം ഉള്ളടക്കം എങ്ങനെ എൻകോഡ് ചെയ്‌തിരിക്കുന്നുവെന്നും ഫയൽ അപ്‌ലോഡ് വിവരങ്ങൾ എങ്ങനെയാണെന്നും സൂചിപ്പിക്കുന്നു. ആട്രിബ്യൂട്ട് എങ്ങനെ ശരിയായി പൂരിപ്പിക്കാമെന്ന് കാണുക എൻക്‌ടൈപ്പ്ഒഴിവാക്കാൻ .

കുറിപ്പ്:ഒന്നിലധികം ഫയലുകൾ അപ്‌ലോഡ് ചെയ്യുന്നതിനുള്ള പിന്തുണ പതിപ്പ് 3.0.10-ൽ അവതരിപ്പിച്ചു.

ഒരു MySQL ഡാറ്റാബേസിൽ ഒരു ചിത്രം സംരക്ഷിക്കാൻ PHP കോഡ് എഴുതുന്നു

ഞങ്ങൾ ആട്രിബ്യൂട്ടിൽ രണ്ട് ഫയലുകൾ അയയ്ക്കുന്നതിനാൽ പേര്സ്ക്വയർ ബ്രാക്കറ്റുകളുള്ള "ഉപയോക്തൃ ഫയൽ" എന്ന വാക്കിന് ശേഷം, ഫയൽ ആട്രിബ്യൂട്ടുകൾ അടങ്ങിയ ഒരു അറേ ഉപയോഗിച്ച് ഞങ്ങൾ നിരവധി ഫയലുകൾ അയയ്ക്കുന്നുവെന്ന് ഇത് വ്യക്തമാക്കുന്നു:

$_FILES['userfile']['name']

ക്ലയന്റ് മെഷീനിലെ യഥാർത്ഥ ഫയൽ നാമം.

$_FILES['userfile']['type']

ബ്രൗസറാണ് ഈ വിവരങ്ങൾ നൽകിയതെങ്കിൽ ഫയലിന്റെ മൈം തരം.
ഉദാഹരണം: "ചിത്രം/ജിഫ്" .

$_FILES['userfile']['size']

$_FILES['userfile']['tmp_name']

ഡൗൺലോഡ് ചെയ്‌ത ഫയൽ സെർവറിൽ സേവ് ചെയ്‌തിരിക്കുന്ന താൽക്കാലിക ഫയലിന്റെ പേര്.

ഓരോ ഫയലിന്റെയും മൂല്യങ്ങൾ എങ്ങനെ ലഭിക്കും?

ഉദാഹരണത്തിന്, /home/test/1.jpg, /home/test/2.jpg എന്ന പേരിലുള്ള ഫയലുകൾ അയച്ചുവെന്ന് കരുതുക.

ഈ സാഹചര്യത്തിൽ $_FILES['userfile']['name']
മൂല്യം 1.jpg അടങ്ങിയിരിക്കും,
കൂടാതെ $_FILES[‘userfile’][‘name’]
- മൂല്യം 2.jpg

അതുപോലെ, $_FILES['userfile']['size'] 1.jpg എന്ന ഫയൽ വലുപ്പ മൂല്യവും മറ്റും ഉൾക്കൊള്ളുന്നു. ഇപ്പോൾ ഫോം ആട്രിബ്യൂട്ടിൽ വ്യക്തമാക്കിയ add_image.php ഫയലിന്റെ കോഡ് നോക്കാം. നടപടി.

1024*1024||$image_size==0) ( $ErrorDescription="ഓരോ ചിത്രവും 1MB കവിയാൻ പാടില്ല! ചിത്രം ഡാറ്റാബേസിലേക്ക് ചേർക്കാൻ കഴിയില്ല."; തിരികെ ""; ) // ഫയൽ വന്നിട്ടുണ്ടോ എന്ന് പരിശോധിക്കുക. ഗ്രാഫിക് // അത് (സുരക്ഷാ കാരണങ്ങളാൽ) എങ്കിൽ(substr($_FILES["userfile"]["type"][$num], 0, 5)=="image") ( //ഫയലിന്റെ ഉള്ളടക്കം വായിക്കുക $image=file_get_contents($_FILES ["userfile"]["tmp_name"][$num]); //ഫയൽ ഉള്ളടക്കത്തിലെ പ്രത്യേക പ്രതീകങ്ങൾ എസ്കേപ്പ് ചെയ്യുക $image=mysql_escape_string($image); $image തിരികെ നൽകുക; )else( ErrorDescription= "നിങ്ങൾ ഒരു ചിത്രം അപ്‌ലോഡ് ചെയ്‌തിട്ടില്ല, അതിനാൽ അത് ചേർക്കാൻ കഴിയില്ല."; തിരികെ ""; ) )else( $ErrorDescription="നിങ്ങൾ ഒരു ചിത്രം അപ്‌ലോഡ് ചെയ്‌തിട്ടില്ല, ഫീൽഡ് ശൂന്യമാണ്, അതിനാൽ ഫയൽ ഡാറ്റാബേസിലേക്ക് ചേർക്കാൻ കഴിയില്ല. "; മടങ്ങുക;) $image തിരികെ നൽകുക; ?>

അതിനാൽ ഈ ലേഖനത്തിൽ ഒരു MySQL ഡാറ്റാബേസിൽ ഒരു ചിത്രം എങ്ങനെ സംരക്ഷിക്കാം എന്നതിനെക്കുറിച്ച് ഞങ്ങൾ സംസാരിച്ചു , PHP ഉപയോഗിക്കുന്നു.