ಫಾರ್ಮ್‌ನಿಂದ mysql ಗೆ ಡೇಟಾವನ್ನು ಸೇರಿಸಲಾಗುತ್ತಿದೆ. PHP ಮೂಲಕ MySQL ಡೇಟಾಬೇಸ್‌ಗೆ ಚಿತ್ರಗಳನ್ನು ಸೇರಿಸುವುದು. mysql ಡೇಟಾಬೇಸ್‌ಗೆ Php ಪ್ರವೇಶ. ಪ್ರಾಯೋಗಿಕ ಉದಾಹರಣೆಗಳು

ಈ ಪೋಸ್ಟ್‌ನಲ್ಲಿ ನಾನು ನಿಮಗೆ ಹೇಳಲು ಬಯಸುತ್ತೇನೆ, ನಮೂದಿಸಿದ ಡೇಟಾವನ್ನು ಫಾರ್ಮ್‌ಗೆ ಡೇಟಾಬೇಸ್‌ಗೆ ವರ್ಗಾಯಿಸುವುದು ಹೇಗೆ. ಆದ್ದರಿಂದ ನಾವು ಎರಡು ಕ್ಷೇತ್ರಗಳನ್ನು ಹೊಂದಿರುವ ಸರಳ ಫಾರ್ಮ್ ಅನ್ನು ರಚಿಸುತ್ತೇವೆ: ಬಳಕೆದಾರರ ಹೆಸರು ಮತ್ತು ಅವರ ಇಮೇಲ್:

ನಿಮ್ಮ ಹೆಸರು:
ನಿಮ್ಮ ಇಮೇಲ್:


ಹೊಸ ಬಳಕೆದಾರರನ್ನು ನೋಂದಾಯಿಸಲು, ಸುದ್ದಿಗಳನ್ನು ಕಳುಹಿಸಲು, ಅಂಕಿಅಂಶಗಳನ್ನು ಸಂಗ್ರಹಿಸಲು ಅಥವಾ ಯಾವುದಕ್ಕೂ ಈ ಫಾರ್ಮ್ ಅನ್ನು ಬಳಸಬಹುದು... ಸಾಮಾನ್ಯವಾಗಿ, ಬಳಕೆದಾರರು ತಮ್ಮ ಡೇಟಾವನ್ನು ಈ ಫಾರ್ಮ್‌ಗೆ ನಮೂದಿಸುತ್ತಾರೆ: ಹೆಸರು ಮತ್ತು ಇಮೇಲ್, ಬಟನ್ ಮೇಲೆ ಕ್ಲಿಕ್ ಮಾಡಿ ಮತ್ತು ನಂತರ ಡೇಟಾ PHP ಸ್ಕ್ರಿಪ್ಟ್‌ಗೆ ಹೋಗುತ್ತದೆ:

$ಹೆಸರು = $_POST["ಹೆಸರು"]; $ಇಮೇಲ್ = $_POST["ಇಮೇಲ್"]; $result = mysqli_query("ಬಳಕೆದಾರರೊಳಗೆ ಸೇರಿಸಿ (ಹೆಸರು, ಇಮೇಲ್) ಮೌಲ್ಯಗಳು ("$ಹೆಸರು", "$ಇಮೇಲ್")"); ಒಂದು ವೇಳೆ ($ಫಲಿತಾಂಶ) (ಪ್ರತಿಧ್ವನಿ "ಡೇಟಾವನ್ನು ಯಶಸ್ವಿಯಾಗಿ ಉಳಿಸಲಾಗಿದೆ!"; ) ಬೇರೆ (ಪ್ರತಿಧ್ವನಿ "ದೋಷ ಸಂಭವಿಸಿದೆ, ದಯವಿಟ್ಟು ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ."; )


ಈ ಸ್ಕ್ರಿಪ್ಟ್‌ನಲ್ಲಿ ಏನು ನಡೆಯುತ್ತಿದೆ? ಈಗ ಅದನ್ನು ಲೆಕ್ಕಾಚಾರ ಮಾಡೋಣ!
ಫಾರ್ಮ್‌ಗೆ ನಮೂದಿಸಿದ ಡೇಟಾವನ್ನು POST ವಿಧಾನವನ್ನು ಬಳಸಿಕೊಂಡು php ಸ್ಕ್ರಿಪ್ಟ್‌ಗೆ ವರ್ಗಾಯಿಸಲಾಗುತ್ತದೆ (ಅದನ್ನು ಮೇಲೆ ಬರೆಯಲಾಗಿದೆ), ಮತ್ತು ಜಾಗತಿಕ ಶ್ರೇಣಿಯ $_POST ಅನ್ನು ಬಳಸಿಕೊಂಡು ಡೇಟಾವನ್ನು $name ಮತ್ತು $email ವೇರಿಯೇಬಲ್‌ಗಳಾಗಿ ರಚಿಸಲಾಗುತ್ತದೆ:

$ಹೆಸರು = $_POST["ಹೆಸರು"]; $ಇಮೇಲ್ = $_POST["ಇಮೇಲ್"];


ಡೇಟಾಬೇಸ್‌ಗೆ ವೇರಿಯೇಬಲ್‌ಗಳನ್ನು ನಮೂದಿಸಲು ಸಿದ್ಧವಾದ ನಂತರ, ನಾವು ವಿನಂತಿಯನ್ನು ರಚಿಸುತ್ತೇವೆ. ಆದರೆ ಮೊದಲು, ನಿಮ್ಮ ಸ್ಕ್ರಿಪ್ಟ್‌ಗಳು ಈಗಾಗಲೇ ಡೇಟಾಬೇಸ್‌ಗೆ ಸಂಪರ್ಕಗೊಂಡಿರಬೇಕು, ಡೇಟಾಬೇಸ್‌ಗೆ ಹೇಗೆ ಸಂಪರ್ಕಿಸುವುದು ಎಂದು ನಾನು ಈ ಥ್ರೆಡ್‌ನಲ್ಲಿ ಬರೆದಿದ್ದೇನೆ.ವಿನಂತಿಯು ಈ ರೀತಿ ಕಾಣುತ್ತದೆ:

$result = mysqli_query("ಬಳಕೆದಾರರೊಳಗೆ ಸೇರಿಸಿ (ಹೆಸರು, ಇಮೇಲ್) ಮೌಲ್ಯಗಳು ("$ಹೆಸರು", "$ಇಮೇಲ್")");


ಈ ಕೋಡ್‌ನಲ್ಲಿ, ಬಳಕೆದಾರರ ಕೋಷ್ಟಕದಲ್ಲಿರುವ ಹೆಸರು ಮತ್ತು ಇಮೇಲ್ ಸೆಲ್‌ಗಳಿಗೆ ಈ ಕೆಳಗಿನ ವೇರಿಯಬಲ್‌ಗಳನ್ನು ಸೇರಿಸಲಾಗುವುದು ಎಂದು ನಾವು ಸೂಚಿಸಿದ್ದೇವೆ: $name ಮತ್ತು $email.
ಮುಂದೆ, ಎಲ್ಲವೂ ಸರಿಯಾಗಿ ನಡೆದರೆ, ನಾವು ಸ್ಥಿತಿಯಿಂದ ಸಂದೇಶವನ್ನು ಸ್ವೀಕರಿಸುತ್ತೇವೆ:

ಡೇಟಾವನ್ನು ಯಶಸ್ವಿಯಾಗಿ ಉಳಿಸಲಾಗಿದೆ!


ಯಾವುದೇ ಸಮಸ್ಯೆಗಳು ಉದ್ಭವಿಸಿದರೆ ಮತ್ತು ಡೇಟಾವನ್ನು ನಮೂದಿಸದಿದ್ದರೆ, ನಾವು ದೋಷ ಸಂದೇಶವನ್ನು ಸ್ವೀಕರಿಸುತ್ತೇವೆ:

ದೋಷ ಸಂಭವಿಸಿದೆ, ದಯವಿಟ್ಟು ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ.


ಅಷ್ಟೇ!

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

ಬಯಸಿದಲ್ಲಿ, ಮಾಹಿತಿಯನ್ನು ನಮೂದಿಸಲು ನೀವು ಹೆಚ್ಚಿನ ಕ್ಷೇತ್ರಗಳನ್ನು ಸೇರಿಸಬಹುದು, ಉದಾಹರಣೆಗೆ, ಬಳಕೆದಾರರ ನಗರವನ್ನು ಪ್ರವೇಶಿಸಲು ನಾವು ಕ್ಷೇತ್ರವನ್ನು ಸೇರಿಸಬೇಕಾಗಿದೆ. ನಾವು ಈಗಾಗಲೇ ಸಿದ್ಧವಾದ ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಹೊಂದಿದ್ದೇವೆ (ಮೇಲೆ ಬರೆಯಲಾಗಿದೆ), ಈಗ ನಾವು ಕ್ಷೇತ್ರವನ್ನು ಸೇರಿಸುತ್ತೇವೆ ನಿಮ್ಮ ನಗರ, ನಾವು ವೇರಿಯಬಲ್ ಅನ್ನು ಕರೆಯೋಣ: $city . ಮತ್ತು ಡೇಟಾ ನಮೂದು ಫಾರ್ಮ್‌ಗೆ, ನಂತರ:

ನಿಮ್ಮ ಇಮೇಲ್:


ಸೇರಿಸಿ:

ನಿಮ್ಮ ನಗರ:


php ಸ್ಕ್ರಿಪ್ಟ್‌ನಲ್ಲಿ, ನಂತರ:

$ಇಮೇಲ್ = $_POST["ಇಮೇಲ್"];


ಸೇರಿಸಿ:

$ನಗರ = $_POST["ನಗರ"];


ಮತ್ತು ಸಹಜವಾಗಿ ನಾವು ಅದನ್ನು ವಿನಂತಿಯಲ್ಲಿ ಸೇರಿಸುತ್ತೇವೆ, ಈ ರೀತಿ:

$result = mysqli_query("ಬಳಕೆದಾರರೊಳಗೆ ಸೇರಿಸಿ (ಹೆಸರು, ಇಮೇಲ್, ನಗರ) ಮೌಲ್ಯಗಳು ("$ಹೆಸರು", "$ಇಮೇಲ್", "$ನಗರ")");


ನೀವು ಕೊನೆಗೊಳ್ಳಬೇಕಾದದ್ದು ಇದು:
ಇನ್‌ಪುಟ್ ಫಾರ್ಮ್:

ನಿಮ್ಮ ಹೆಸರು:
ನಿಮ್ಮ ಇಮೇಲ್:
ನಿಮ್ಮ ನಗರ:


ಸ್ಕ್ರಿಪ್ಟ್:

$ಹೆಸರು = $_POST["ಹೆಸರು"]; $ಇಮೇಲ್ = $_POST["ಇಮೇಲ್"]; $ನಗರ = $_POST["ನಗರ"]; $result = mysqli_query("ಬಳಕೆದಾರರೊಳಗೆ ಸೇರಿಸಿ (ಹೆಸರು, ಇಮೇಲ್, ನಗರ) ಮೌಲ್ಯಗಳು ("$ಹೆಸರು", "$ಇಮೇಲ್", "$ನಗರ")"); ಒಂದು ವೇಳೆ ($ ಫಲಿತಾಂಶ == ನಿಜ) (ಪ್ರತಿಧ್ವನಿ "ಡೇಟಾವನ್ನು ಯಶಸ್ವಿಯಾಗಿ ಉಳಿಸಲಾಗಿದೆ!"; ) ಇಲ್ಲದಿದ್ದರೆ (ಪ್ರತಿಧ್ವನಿ "ದೋಷ ಸಂಭವಿಸಿದೆ, ದಯವಿಟ್ಟು ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ."; )


ನೀವು ನೋಡುವಂತೆ, ಏನೂ ಸಂಕೀರ್ಣವಾಗಿಲ್ಲ! ಅಗತ್ಯವಿದ್ದರೆ, ನೀವು ಇನ್ನೊಂದು ಕ್ಷೇತ್ರವನ್ನು ಸೇರಿಸಬಹುದು, ಮತ್ತು ಇನ್ನೊಂದು, ಮತ್ತು ಇನ್ನೊಂದು...

ನಿಮ್ಮಿಂದ ಡೇಟಾಬೇಸ್ ಅನ್ನು ಹೇಗೆ ನಿರ್ವಹಿಸುವುದು ಎಂದು ಈ ಮಾರ್ಗದರ್ಶಿ ನಿಮಗೆ ತೋರಿಸುತ್ತದೆ PHPಸ್ಕ್ರಿಪ್ಟ್. ನೀವು ಅಧ್ಯಯನ ಮಾಡುತ್ತೀರಿ MySQL ಟೇಬಲ್‌ಗೆ ದಾಖಲೆಯನ್ನು ಸೇರಿಸುವುದು,ಬಳಸುತ್ತಿದೆ PHP ಕೋಡ್. ನೀವು ಪ್ರಾರಂಭಿಸುವ ಮೊದಲು, PHP ಮತ್ತು ಡೇಟಾಬೇಸ್‌ಗಳೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುವ ಮೂಲ ಹಂತಗಳನ್ನು ಒಳಗೊಂಡಿರುವ ನಮ್ಮ ಇತರ ಟ್ಯುಟೋರಿಯಲ್‌ಗಳನ್ನು ಪರಿಶೀಲಿಸಿ - PHP ನಿಂದ MySQL ಡೇಟಾಬೇಸ್‌ಗೆ ಸಂಪರ್ಕಿಸುವುದು.

ನೀವು ಪ್ರಾರಂಭಿಸುವ ಮೊದಲು, ಕೆಳಗಿನವುಗಳಿಗಾಗಿ ಪರಿಶೀಲಿಸಿ:

  • ನಿಮ್ಮ ಹೋಸ್ಟಿಂಗ್ ನಿಯಂತ್ರಣ ಫಲಕಕ್ಕೆ ಪ್ರವೇಶ

ಹಂತ 1 - ಟೇಬಲ್ ಅನ್ನು ರಚಿಸುವುದು

ಮೊದಲನೆಯದಾಗಿ, ನಿಮ್ಮ ಡೇಟಾಕ್ಕಾಗಿ ನಾವು ಟೇಬಲ್ ಅನ್ನು ರಚಿಸಬೇಕಾಗಿದೆ. ಇದು ನೀವು ಮಾಡಬಹುದಾದ ಅತ್ಯಂತ ಸರಳವಾದ ವಿಧಾನವಾಗಿದೆ phpMyAdminನಿಮ್ಮ ಹೋಸ್ಟಿಂಗ್ ನಿಯಂತ್ರಣ ಫಲಕದಿಂದ. ಹಿಂದಿನ ಟ್ಯುಟೋರಿಯಲ್‌ನಲ್ಲಿ MySQL ಡೇಟಾಬೇಸ್ ರಚಿಸುವ ಪ್ರಕ್ರಿಯೆಯನ್ನು ನಾವು ಈಗಾಗಲೇ ಆವರಿಸಿದ್ದೇವೆ, ಆದ್ದರಿಂದ ನಾವು ಆ ಭಾಗವನ್ನು ಇಲ್ಲಿ ಬಿಟ್ಟುಬಿಡುತ್ತೇವೆ.

phpMyAdmin ಪುಟಕ್ಕೆ ಲಾಗ್ ಇನ್ ಮಾಡಿದ ನಂತರ, ನೀವು ಈ ರೀತಿಯ ಚಿತ್ರವನ್ನು ನೋಡುತ್ತೀರಿ:

ಹೆಸರಿನೊಂದಿಗೆ ಟೇಬಲ್ ಅನ್ನು ರಚಿಸೋಣ ವಿದ್ಯಾರ್ಥಿಗಳುನಮ್ಮ ಡೇಟಾಬೇಸ್‌ಗಾಗಿ u266072517_ಹೆಸರು. ಬಟನ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು ನೀವು ಹೊಸ ಟೇಬಲ್ ಅನ್ನು ರಚಿಸಬಹುದು ಟೇಬಲ್ ರಚಿಸಿ. ಇದರ ನಂತರ, ನಿಮ್ಮ ಟೇಬಲ್‌ಗೆ ಅಗತ್ಯವಿರುವ ಎಲ್ಲಾ ಡೇಟಾವನ್ನು ನೀವು ನಮೂದಿಸಬಹುದಾದ ಹೊಸ ಪುಟವನ್ನು ನೀವು ನೋಡುತ್ತೀರಿ:

ಟೇಬಲ್ ಅನ್ನು ರಚಿಸಲು ಇದು ಸರಳವಾದ ಮಾರ್ಗವಾಗಿದೆ, ಟೇಬಲ್/ಡೇಟಾಬೇಸ್ ರಚನೆಯ ಕುರಿತು ಹೆಚ್ಚಿನ ಮಾಹಿತಿಗಾಗಿ ಮತ್ತು ಪ್ರತಿ ಕ್ಷೇತ್ರಕ್ಕೆ ಯಾವ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಬಳಸಬಹುದು, ದಯವಿಟ್ಟು ಅಧಿಕೃತ phpMyAdmin ದಸ್ತಾವೇಜನ್ನು ನೋಡಿ.

ನಾವು ಬಳಸುವ ಕ್ಷೇತ್ರಗಳ ಕೆಲವು ಸರಳ ವಿವರಣೆಗಳು ಇಲ್ಲಿವೆ:

  • ಹೆಸರುನಿಮ್ಮ ಕ್ಷೇತ್ರದ ಹೆಸರು. ನಿಮ್ಮ ಮೇಜಿನ ಮೇಲ್ಭಾಗದಲ್ಲಿ ಕಾಣಿಸುತ್ತದೆ.
  • ಟೈಪ್ ಮಾಡಿ- ಇಲ್ಲಿ ನೀವು ಕ್ಷೇತ್ರದ ಪ್ರಕಾರವನ್ನು ಹೊಂದಿಸಬಹುದು. ಉದಾಹರಣೆಗೆ, ನಾವು ಆಯ್ಕೆ ಮಾಡುತ್ತೇವೆ ವರ್ಚಾರ್ಏಕೆಂದರೆ ಇಲ್ಲಿ ನಾವು ಹೆಸರಿನೊಂದಿಗೆ ಸ್ಟ್ರಿಂಗ್ ಅನ್ನು ನಮೂದಿಸಬೇಕಾಗಿದೆ (ಅಕ್ಷರಗಳನ್ನು ಹೊಂದಿದೆ, ಸಂಖ್ಯೆಗಳಲ್ಲ).
  • ಉದ್ದ/ಮೌಲ್ಯಗಳು- ಈ ಕ್ಷೇತ್ರದಲ್ಲಿ ನಿಮ್ಮ ಪ್ರವೇಶದ ಗರಿಷ್ಠ ಉದ್ದವನ್ನು ಹೊಂದಿಸಲು ಬಳಸಲಾಗುತ್ತದೆ.
  • ಸೂಚ್ಯಂಕ- ನಮ್ಮ "ID" ಕ್ಷೇತ್ರಕ್ಕಾಗಿ ನಾವು "ಪ್ರಾಥಮಿಕ" ಸೂಚಿಯನ್ನು ಬಳಸುತ್ತೇವೆ. ಕೋಷ್ಟಕವನ್ನು ರಚಿಸುವಾಗ, ಒಂದು ID ಕ್ಷೇತ್ರವನ್ನು ಹೊಂದಲು ಸೂಚಿಸಲಾಗುತ್ತದೆ. ಕೋಷ್ಟಕಗಳ ನಡುವಿನ ಸಂಬಂಧಗಳನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಿದಾಗ ಕೋಷ್ಟಕದಲ್ಲಿ ದಾಖಲೆಗಳನ್ನು ಸೂಚಿಸಲು ಇದನ್ನು ಬಳಸಲಾಗುತ್ತದೆ. ಅದನ್ನೂ ಇಲ್ಲಿ ಗಮನಿಸಬಹುದು "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 ಇಂಜೆಕ್ಷನ್ ದಾಳಿಯನ್ನು ಮಾಡಬಹುದು. ಉದಾಹರಣೆಗೆ:

// ಬಳಕೆದಾರರು ಇದನ್ನು ಲಾಗಿನ್ ಫಾರ್ಮ್ ಥೋಮ್‌ನ ಬಳಕೆದಾರಹೆಸರು ಕ್ಷೇತ್ರದಲ್ಲಿ ಬರೆಯುತ್ತಾರೆ; ಡೇಟಾಬೇಸ್ ಯೂಸರ್_ಟೇಬಲ್ ಅನ್ನು ಡ್ರಾಪ್ ಮಾಡಿ; // ಅಂತಿಮ ಪ್ರಶ್ನೆಯು ಈ "ಬಳಕೆದಾರ_ಟೇಬಲ್‌ನಿಂದ * ಆಯ್ಕೆಮಾಡಿ

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 = "ಥಾಮ್" ಗೆ ಸೇರಿಸಲು ಬಯಸುವ ವ್ಯಕ್ತಿಗೆ ವೇರಿಯೇಬಲ್‌ಗಳನ್ನು ಹೊಂದಿಸಿ; $last_Name = "ವೈಲ್"; $ಇಮೇಲ್ = " [ಇಮೇಲ್ ಸಂರಕ್ಷಿತ]"; // ಇಲ್ಲಿ ನಾವು ಡೇಟಾಬೇಸ್ ಆಬ್ಜೆಕ್ಟ್‌ನ ತಯಾರಿ () ವಿಧಾನವನ್ನು ಕರೆಯುವ ವೇರಿಯಬಲ್ ಅನ್ನು ರಚಿಸುತ್ತೇವೆ // ನೀವು ಚಲಾಯಿಸಲು ಬಯಸುವ SQL ಪ್ರಶ್ನೆಯನ್ನು ಪ್ಯಾರಾಮೀಟರ್‌ನಂತೆ ನಮೂದಿಸಲಾಗಿದೆ ಮತ್ತು ಪ್ಲೇಸ್‌ಹೋಲ್ಡರ್‌ಗಳನ್ನು ಈ ರೀತಿ ಬರೆಯಲಾಗಿದೆ: placeholder_name $my_Insert_Statement = $my_Db_Connection-> ತಯಾರು ("ವಿದ್ಯಾರ್ಥಿಗಳಿಗೆ ಸೇರಿಸಿ (ಹೆಸರು, ಕೊನೆಯ ಹೆಸರು, ಇಮೇಲ್) ಮೌಲ್ಯಗಳು (:first_name, :last_name, :email)"); ಪ್ಯಾರಾಮೀಟರ್ ಮೇಲಿನ ಹೇಳಿಕೆಯಲ್ಲಿ ಪ್ಲೇಸ್‌ಹೋಲ್ಡರ್ ಆಗಿದೆ - ಇದು $my_Insert_Statement->bindParam (:first_name, $first_Name) ಅನ್ನು ಉಲ್ಲೇಖಿಸುತ್ತದೆ; , $email); ಎಕ್ಸಿಕ್ಯೂಟ್()) ( ಪ್ರತಿಧ್ವನಿ "ಹೊಸ ದಾಖಲೆಯನ್ನು ಯಶಸ್ವಿಯಾಗಿ ರಚಿಸಲಾಗಿದೆ"; ) ಬೇರೆ (ಪ್ರತಿಧ್ವನಿ "ರೆಕಾರ್ಡ್ ರಚಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ"; ) // ಈ ಹಂತದಲ್ಲಿ ನೀವು ವೇರಿಯೇಬಲ್‌ಗಳ ಡೇಟಾವನ್ನು ಬದಲಾಯಿಸಬಹುದು ಮತ್ತು ಡೇಟಾಬೇಸ್ $first_Name = "ಜಾನ್" ಗೆ ಹೆಚ್ಚಿನ ಡೇಟಾವನ್ನು ಸೇರಿಸಲು ಮತ್ತೊಮ್ಮೆ ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದು; $last_Name = "ಸ್ಮಿತ್"; $ಇಮೇಲ್ = " [ಇಮೇಲ್ ಸಂರಕ್ಷಿತ]"; $my_Insert_Statement->ಎಕ್ಸಿಕ್ಯೂಟ್(); // ($my_Insert_Statement->ಎಕ್ಸಿಕ್ಯೂಟ್()) (ಪ್ರತಿಧ್ವನಿ "ಹೊಸ ದಾಖಲೆಯನ್ನು ಯಶಸ್ವಿಯಾಗಿ ರಚಿಸಲಾಗಿದೆ"; ) ಬೇರೆ (ಪ್ರತಿಧ್ವನಿ "ರೆಕಾರ್ಡ್ ರಚಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ"; )

28, 29 ಮತ್ತು 30 ನೇ ಸಾಲಿನಲ್ಲಿ ನಾವು ವಿಧಾನವನ್ನು ಬಳಸುತ್ತೇವೆ bindParam()ಡೇಟಾಬೇಸ್ ವಸ್ತು. ಒಂದು ವಿಧಾನವೂ ಇದೆ ಬೈಂಡ್ ವ್ಯಾಲ್ಯೂ(), ಹಿಂದಿನದಕ್ಕಿಂತ ಭಿನ್ನವಾಗಿದೆ.

  • bindParam () -ಈ ವಿಧಾನವು ವಿಧಾನವನ್ನು ಮಾಡಿದಾಗ ಡೇಟಾವನ್ನು ಎಣಿಕೆ ಮಾಡುತ್ತದೆ ಕಾರ್ಯಗತಗೊಳಿಸು ()ಸಾಧಿಸಿದೆ. ಮೊದಲ ಬಾರಿಗೆ ಸ್ಕ್ರಿಪ್ಟ್ ವಿಧಾನವನ್ನು ತಲುಪುತ್ತದೆ ಕಾರ್ಯಗತಗೊಳಿಸು ()ಅವನು ಅದನ್ನು ನೋಡುತ್ತಾನೆ $first_Name"ಥಾಮ್" ಅನ್ನು ಉಲ್ಲೇಖಿಸುತ್ತದೆ, ಆ ಮೌಲ್ಯವನ್ನು ಬಂಧಿಸುತ್ತದೆ ಮತ್ತು ಪ್ರಶ್ನೆಯನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುತ್ತದೆ. ಸ್ಕ್ರಿಪ್ಟ್ ಎರಡನೇ ಬಾರಿ ವಿಧಾನವನ್ನು ತಲುಪಿದಾಗ ಕಾರ್ಯಗತಗೊಳಿಸು (), ಅವನು ಹಾಗೆ ನೋಡುತ್ತಾನೆ $first_Nameಈಗ "ಜಾನ್" ಅನ್ನು ಉಲ್ಲೇಖಿಸುತ್ತದೆ, ಆ ಮೌಲ್ಯವನ್ನು ಬಂಧಿಸುತ್ತದೆ ಮತ್ತು ಹೊಸ ಮೌಲ್ಯದೊಂದಿಗೆ ಮತ್ತೆ ಪ್ರಶ್ನೆಯನ್ನು ರನ್ ಮಾಡುತ್ತದೆ. ನಾವು ಒಮ್ಮೆ ವಿನಂತಿಯನ್ನು ರಚಿಸುತ್ತೇವೆ ಮತ್ತು ಸ್ಕ್ರಿಪ್ಟ್‌ನಲ್ಲಿ ವಿವಿಧ ಸ್ಥಳಗಳಲ್ಲಿ ವಿಭಿನ್ನ ಡೇಟಾವನ್ನು ಬದಲಿಸುತ್ತೇವೆ ಎಂಬುದನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು ಬಹಳ ಮುಖ್ಯ.
  • ಬೈಂಡ್ ವ್ಯಾಲ್ಯೂ () -ಈ ವಿಧಾನವು ಅದರ ಸರದಿಯನ್ನು ಪಡೆದ ತಕ್ಷಣ ಡೇಟಾವನ್ನು ಲೆಕ್ಕಾಚಾರ ಮಾಡುತ್ತದೆ. ಮೌಲ್ಯದಿಂದ $first_Nameನಾವು ವಿಧಾನವನ್ನು ತಲುಪಿದ ಸಮಯದಲ್ಲಿ "ಥಾಮ್" ಗೆ ಹೊಂದಿಸಲಾಗಿದೆ ಬೈಂಡ್ ವ್ಯಾಲ್ಯೂ(), ವಿಧಾನವನ್ನು ಕರೆಯುವಾಗ ಅದನ್ನು ಬಳಸಲಾಗುತ್ತದೆ ಕಾರ್ಯಗತಗೊಳಿಸು ()ಫಾರ್ $my_Insert_Statement.

ನಾವು ವೇರಿಯೇಬಲ್ ಅನ್ನು ಮರುಬಳಕೆ ಮಾಡುತ್ತಿದ್ದೇವೆ ಎಂಬುದನ್ನು ದಯವಿಟ್ಟು ಗಮನಿಸಿ $first_Nameಮತ್ತು ಎರಡನೇ ಬಾರಿಗೆ ಹೊಸ ಮೌಲ್ಯವನ್ನು ನೀಡಿ. ಈ ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಚಲಾಯಿಸಿದ ನಂತರ ನಿಮ್ಮ ಡೇಟಾಬೇಸ್ ಅನ್ನು ನೀವು ಪರಿಶೀಲಿಸಿದರೆ, ಈ ವೇರಿಯಬಲ್ ಮೌಲ್ಯಕ್ಕೆ ವಿರುದ್ಧವಾಗಿ ನೀಡಿದ ಎರಡೂ ಹೆಸರುಗಳು ಇರುತ್ತವೆ $first_Nameಈ ಸ್ಕ್ರಿಪ್ಟ್‌ನ ಕೊನೆಯಲ್ಲಿ "ಜಾನ್" ಗೆ ಸಮನಾಗಿರುತ್ತದೆ. PHP ಸ್ಕ್ರಿಪ್ಟ್ ರನ್ ಆಗುವ ಮೊದಲು ಅದರ ವಿಷಯಗಳನ್ನು ಮೌಲ್ಯಮಾಪನ ಮಾಡುತ್ತದೆ ಎಂಬುದನ್ನು ನೆನಪಿಡಿ.

ಬದಲಿಸುವ ಮೂಲಕ ನಿಮ್ಮ ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ನೀವು ಬದಲಾಯಿಸಿದರೆ bindParamಮೇಲೆ ಬೈಂಡ್ ವ್ಯಾಲ್ಯೂ, ನೀವು MySQL ಡೇಟಾಬೇಸ್‌ಗೆ "ಥಾಮ್ ವೈಲ್" ಅನ್ನು ಎರಡು ಬಾರಿ ಸೇರಿಸುತ್ತೀರಿ ಮತ್ತು ಜಾನ್ ಸ್ಮಿತ್ ಅನ್ನು ನಿರ್ಲಕ್ಷಿಸಲಾಗುತ್ತದೆ.

ಹಂತ 3 - ಯಶಸ್ಸನ್ನು ಪರಿಶೀಲಿಸಿ ಮತ್ತು ಸಾಮಾನ್ಯ ಸಮಸ್ಯೆಗಳನ್ನು ಪರಿಹರಿಸಿ

MySQL ಡೇಟಾಬೇಸ್‌ನಲ್ಲಿ ನಾವು ನಡೆಸಿದ ಪ್ರಶ್ನೆಯು ಯಶಸ್ವಿಯಾದರೆ, ನಾವು ಈ ಕೆಳಗಿನ ಸಂದೇಶವನ್ನು ನೋಡುತ್ತೇವೆ:

ಸಾಮಾನ್ಯ ದೋಷಗಳನ್ನು ಪರಿಹರಿಸುವುದು

MySQLi

ಯಾವುದೇ ಸಂದರ್ಭದಲ್ಲಿ, ಮೇಲಿನ ಸಂದೇಶದ ಬದಲಿಗೆ ದೋಷ ಸಂದೇಶವನ್ನು ತೋರಿಸಲಾಗುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, ನಮ್ಮ ಕೋಡ್‌ನಲ್ಲಿ ಒಂದು ಸಿಂಟ್ಯಾಕ್ಸ್ ದೋಷವನ್ನು ಮಾಡೋಣ ಮತ್ತು ನಾವು ಇದನ್ನು ಪಡೆಯುತ್ತೇವೆ:

ನಾವು ನೋಡುವಂತೆ, ಕೋಡ್‌ನ ಮೊದಲ ಭಾಗವು ಉತ್ತಮವಾಗಿದೆ, ಸಂಪರ್ಕವನ್ನು ಯಶಸ್ವಿಯಾಗಿ ಸ್ಥಾಪಿಸಲಾಗಿದೆ, ಆದರೆ ಕಾರ್ಯಗತಗೊಳಿಸಿದಾಗ ನಮ್ಮ SQL ಪ್ರಶ್ನೆಯು ವೈಫಲ್ಯವನ್ನು ಎದುರಿಸಿದೆ.

"ದೋಷ: ವಿದ್ಯಾರ್ಥಿಗಳೊಳಗೆ ಸೇರಿಸಿ (ಹೆಸರು, ಕೊನೆಯ ಹೆಸರು, ಇಮೇಲ್) ಮೌಲ್ಯಗಳು ("ಥಾಮ್", "ವೈಲ್", " [ಇಮೇಲ್ ಸಂರಕ್ಷಿತ]") ನಿಮ್ಮ SQL ಸಿಂಟ್ಯಾಕ್ಸ್‌ನಲ್ಲಿ ನೀವು ದೋಷವನ್ನು ಹೊಂದಿದ್ದೀರಿ; "(ಹೆಸರು, ಕೊನೆಯ ಹೆಸರು, ಇಮೇಲ್) ಮೌಲ್ಯಗಳು ("ಥಾಮ್", "ವೈಲ್", " ಬಳಿ ಬಳಸಲು ಸರಿಯಾದ ಸಿಂಟ್ಯಾಕ್ಸ್‌ಗಾಗಿ ನಿಮ್ಮ MySQL ಸರ್ವರ್ ಆವೃತ್ತಿಗೆ ಅನುಗುಣವಾದ ಕೈಪಿಡಿಯನ್ನು ಪರಿಶೀಲಿಸಿ [ಇಮೇಲ್ ಸಂರಕ್ಷಿತ]")" ಸಾಲಿನಲ್ಲಿ 1"

ನಮ್ಮ ಸ್ಕ್ರಿಪ್ಟ್ ವಿಫಲಗೊಳ್ಳಲು ಕಾರಣವಾಗುವ ಸಿಂಟ್ಯಾಕ್ಸ್ ದೋಷವಿತ್ತು. ದೋಷ ಇಲ್ಲಿದೆ:

$sql = "ವಿದ್ಯಾರ್ಥಿಗಳಿಗೆ ಸೇರಿಸಿ (ಹೆಸರು, ಕೊನೆಯ ಹೆಸರು, ಇಮೇಲ್) ಮೌಲ್ಯಗಳು ("ಥಾಮ್", "ವೈಲ್", " [ಇಮೇಲ್ ಸಂರಕ್ಷಿತ]")";

ನೀವು ನೋಡುವಂತೆ, ನಾವು ಆವರಣದ ಬದಲಿಗೆ ಸುರುಳಿಯಾಕಾರದ ಕಟ್ಟುಪಟ್ಟಿಗಳನ್ನು ಬಳಸುತ್ತಿದ್ದೇವೆ. ಇದು ತಪ್ಪಾಗಿದೆ ಮತ್ತು ನಮ್ಮ ಸ್ಕ್ರಿಪ್ಟ್‌ನಲ್ಲಿ ಸಿಂಟ್ಯಾಕ್ಸ್ ದೋಷಕ್ಕೆ ಕಾರಣವಾಗುತ್ತದೆ.

ಪಿಡಿಒ

PDO ಸಂಪರ್ಕದ 7 ನೇ ಸಾಲಿನಲ್ಲಿ, ದೋಷ ನಿರ್ವಹಣೆ ಮೋಡ್ ಅನ್ನು 'ಎಲ್ಲಾ ವಿನಾಯಿತಿಗಳನ್ನು ಪ್ರದರ್ಶಿಸಲು' ಹೊಂದಿಸಲಾಗಿದೆ. ನೀವು ಇದನ್ನು ಸ್ಕ್ರಿಪ್ಟ್‌ನಿಂದ ತೆಗೆದುಹಾಕಿದರೆ ಮತ್ತು ವಿನಂತಿಯು ವಿಫಲವಾದರೆ, ನೀವು ಯಾವುದೇ ದೋಷ ಸಂದೇಶವನ್ನು ಸ್ವೀಕರಿಸುವುದಿಲ್ಲ. ವಿನಾಯಿತಿಗಳನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿದಲ್ಲಿ, ಎದುರಿಸಿದ ನಿರ್ದಿಷ್ಟ ಸಮಸ್ಯೆಗಳನ್ನು ಪ್ರದರ್ಶಿಸಲಾಗುತ್ತದೆ. ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸುವಾಗ ಇದನ್ನು ಸಾಮಾನ್ಯವಾಗಿ ಉತ್ತಮವಾಗಿ ಬಳಸಲಾಗುತ್ತದೆ, ಏಕೆಂದರೆ ಇದು ನಿಮ್ಮ ಡೇಟಾಗೆ ಅನಧಿಕೃತ ಪ್ರವೇಶವನ್ನು ಪಡೆಯುವ ಯಾರಿಂದಲೂ ನೀವು ಮರೆಮಾಡಲು ಬಯಸುವ ಡೇಟಾಬೇಸ್ ಮತ್ತು ಟೇಬಲ್ ಹೆಸರುಗಳನ್ನು ಬಹಿರಂಗಪಡಿಸಬಹುದು. ಮೇಲಿನ ಸಂದರ್ಭದಲ್ಲಿ, ಆವರಣದ ಬದಲಿಗೆ ಸುರುಳಿಯಾಕಾರದ ಕಟ್ಟುಪಟ್ಟಿಗಳನ್ನು ಬಳಸಿದಾಗ, ದೋಷವು ಈ ಕೆಳಗಿನಂತೆ ಕಾಣುತ್ತದೆ:

ಮಾರಣಾಂತಿಕ ದೋಷ: "SQLSTATE: ಸಿಂಟ್ಯಾಕ್ಸ್ ದೋಷ ಅಥವಾ ಪ್ರವೇಶ ಉಲ್ಲಂಘನೆ: 1064 ನಿಮ್ಮ SQL ಸಿಂಟ್ಯಾಕ್ಸ್‌ನಲ್ಲಿ ನೀವು ದೋಷವನ್ನು ಹೊಂದಿರುವಿರಿ; "(ಹೆಸರು, ಕೊನೆಯ ಹೆಸರು, ಇಮೇಲ್) VALUES ("ಥಾಮ್", "ವೈಲ್", " ಬಳಿ ಬಳಸಲು ಸರಿಯಾದ ಸಿಂಟ್ಯಾಕ್ಸ್‌ಗಾಗಿ ನಿಮ್ಮ MySQL ಸರ್ವರ್ ಆವೃತ್ತಿಗೆ ಅನುಗುಣವಾದ ಕೈಪಿಡಿಯನ್ನು ಪರಿಶೀಲಿಸಿ [ಇಮೇಲ್ ಸಂರಕ್ಷಿತ] 1 ನೇ ಸಾಲಿನಲ್ಲಿ ")"

ನೀವು ಎದುರಿಸಬಹುದಾದ ಇತರ ಸಮಸ್ಯೆಗಳು:

  • ಕ್ಷೇತ್ರಗಳನ್ನು ತಪ್ಪಾಗಿ ನಿರ್ದಿಷ್ಟಪಡಿಸಲಾಗಿದೆ (ಅಸ್ತಿತ್ವದಲ್ಲಿಲ್ಲದ ಕ್ಷೇತ್ರಗಳು ಅಥವಾ ತಪ್ಪಾಗಿ ಬರೆಯಲಾದ ಹೆಸರುಗಳು).
  • ಮೌಲ್ಯದ ಪ್ರಕಾರವು ಕ್ಷೇತ್ರದ ಪ್ರಕಾರಕ್ಕೆ ಹೊಂದಿಕೆಯಾಗುವುದಿಲ್ಲ. ಉದಾಹರಣೆಗೆ, ನಾವು ಸಂಖ್ಯೆಯ ಮೌಲ್ಯವನ್ನು ನಿಯೋಜಿಸಲು ಬಯಸಿದಾಗ 47 ಕ್ಷೇತ್ರ ಹೆಸರು, ನಾವು ದೋಷವನ್ನು ಪಡೆಯುತ್ತೇವೆ ಏಕೆಂದರೆ ಮೌಲ್ಯವು ಸ್ಟ್ರಿಂಗ್ ಎಂದು ನಿರೀಕ್ಷಿಸಲಾಗಿದೆ. ಆದರೆ, ನೀವು ಉಲ್ಲೇಖಗಳಲ್ಲಿ ಸಂಖ್ಯೆಯನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಿದರೆ, ಉದಾಹರಣೆಗೆ, “47” , ಯಾವುದೇ ದೋಷ ಇರುವುದಿಲ್ಲ ಏಕೆಂದರೆ ಈ ಕ್ಷೇತ್ರದಲ್ಲಿ ನಮ್ಮ ಸಂಖ್ಯೆಯನ್ನು ಸ್ಟ್ರಿಂಗ್ ಆಗಿ ಬರೆಯಲಾಗುತ್ತದೆ.
  • ಅಸ್ತಿತ್ವದಲ್ಲಿಲ್ಲದ ಟೇಬಲ್‌ಗೆ ಡೇಟಾವನ್ನು ನಮೂದಿಸುವ ಪ್ರಯತ್ನ ಅಥವಾ ಟೇಬಲ್ ಹೆಸರನ್ನು ಕಾಗುಣಿತದಲ್ಲಿ ದೋಷ.

ದೋಷ ತಿದ್ದುಪಡಿ ಮಾರ್ಗದರ್ಶಿಗಳನ್ನು ಅನುಸರಿಸುವ ಮೂಲಕ ಅಥವಾ ದೋಷ ಲಾಗ್ ಅನ್ನು ಪರಿಶೀಲಿಸುವ ಮೂಲಕ ಈ ಎಲ್ಲಾ ದೋಷಗಳನ್ನು ಸರಿಪಡಿಸಬಹುದು.

ಡೇಟಾವನ್ನು ಯಶಸ್ವಿಯಾಗಿ ಸೇರಿಸಿದ ನಂತರ, ನಾವು ಅದನ್ನು ನಮ್ಮ ಡೇಟಾಬೇಸ್‌ನಲ್ಲಿ ನೋಡಬೇಕು. ನಾವು ನಮ್ಮ ಡೇಟಾವನ್ನು ಸೇರಿಸಿದ ಟೇಬಲ್‌ನ ಉದಾಹರಣೆ ಇಲ್ಲಿದೆ phpMyAdmin.

ತೀರ್ಮಾನ

ಈ ಟ್ಯುಟೋರಿಯಲ್ ನಲ್ಲಿ ನೀವು ಹೇಗೆ ಬಳಸಬೇಕೆಂದು ಕಲಿತಿದ್ದೀರಿ MySQL ಟೇಬಲ್‌ಗೆ ದಾಖಲೆಯನ್ನು ಸೇರಿಸಲು PHP ಕೋಡ್ಬಳಸುತ್ತಿದೆ MySQLiಮತ್ತು ಪಿಡಿಒ. ನಾವು ಸಾಮಾನ್ಯ ದೋಷಗಳು ಮತ್ತು ಅವುಗಳ ಪರಿಹಾರಗಳನ್ನು ಸಹ ನೋಡಿದ್ದೇವೆ. MySQL ಡೇಟಾಬೇಸ್‌ಗೆ ಸೇರಿಸಲು PHP ಕೋಡ್ ಅನ್ನು ಹೇಗೆ ಬಳಸುವುದು ಎಂದು ತಿಳಿದುಕೊಳ್ಳುವುದು ನೀವು ಪ್ರೋಗ್ರಾಂ ಮಾಡಲು ಕಲಿಯುತ್ತಿದ್ದರೆ ಅಥವಾ ಈಗಾಗಲೇ ನಿಮ್ಮ ಸ್ವಂತ ವೆಬ್‌ಸೈಟ್ ಅನ್ನು ರಚಿಸುತ್ತಿರಲಿ ಸೂಕ್ತವಾಗಿ ಬರುತ್ತದೆ.

ಈ ಲೇಖನದಲ್ಲಿ, MySQL ಡೇಟಾಬೇಸ್‌ಗೆ ಸಾಲುಗಳನ್ನು ಸೇರಿಸಲು PHP ಅನ್ನು ಹೇಗೆ ಬಳಸುವುದು ಎಂದು ನಾವು ನೋಡುತ್ತೇವೆ.

ಹಂತ 1 - ಟೇಬಲ್ ಅನ್ನು ರಚಿಸುವುದು

ಮೊದಲು ನೀವು ಡೇಟಾಕ್ಕಾಗಿ ಟೇಬಲ್ ಅನ್ನು ರಚಿಸಬೇಕಾಗಿದೆ. ಇದು ನಿಮ್ಮ ಹೋಸ್ಟಿಂಗ್ ನಿಯಂತ್ರಣ ಫಲಕದಲ್ಲಿ phpMyAdmin ಅನ್ನು ಬಳಸಿಕೊಂಡು ಮಾಡಬಹುದಾದ ಸರಳ ವಿಧಾನವಾಗಿದೆ.

phpMyAdmin ಗೆ ಲಾಗ್ ಇನ್ ಮಾಡಿದ ನಂತರ ನೀವು ಈ ಇಂಟರ್ಫೇಸ್ ಅನ್ನು ನೋಡುತ್ತೀರಿ:

"ಟೇಬಲ್ ರಚಿಸಿ" ಬಟನ್ ಅನ್ನು ಕ್ಲಿಕ್ ಮಾಡುವ ಮೂಲಕ u266072517_name ಡೇಟಾಬೇಸ್‌ನಲ್ಲಿ ವಿದ್ಯಾರ್ಥಿಗಳ ಹೆಸರಿನ ಟೇಬಲ್ ಅನ್ನು ರಚಿಸೋಣ. ಇದರ ನಂತರ, ನಾವು ಅಗತ್ಯವಿರುವ ಎಲ್ಲಾ ಟೇಬಲ್ ನಿಯತಾಂಕಗಳನ್ನು ಹೊಂದಿಸುವ ಹೊಸ ಪುಟವನ್ನು ನಾವು ನೋಡುತ್ತೇವೆ:

ಇದು ಟೇಬಲ್‌ಗಾಗಿ ಬಳಸಬಹುದಾದ ಸರಳವಾದ ಸೆಟ್ಟಿಂಗ್ ಆಗಿದೆ ಮತ್ತು ಟೇಬಲ್/ಡೇಟಾಬೇಸ್ ರಚನೆಯ ಕುರಿತು ಹೆಚ್ಚಿನ ಮಾಹಿತಿಯನ್ನು ಪಡೆಯಬಹುದು.

ಕಾಲಮ್ ಆಯ್ಕೆಗಳು:

  • ಹೆಸರು ಎಂಬುದು ಟೇಬಲ್‌ನ ಮೇಲ್ಭಾಗದಲ್ಲಿ ಗೋಚರಿಸುವ ಕಾಲಮ್ ಹೆಸರು.
  • ಪ್ರಕಾರ - ಕಾಲಮ್ ಪ್ರಕಾರ. ಉದಾಹರಣೆಗೆ, ನಾವು ವರ್ಚಾರ್ ಅನ್ನು ಆಯ್ಕೆ ಮಾಡಿದ್ದೇವೆ ಏಕೆಂದರೆ ನಾವು ಸ್ಟ್ರಿಂಗ್ ಮೌಲ್ಯಗಳನ್ನು ನಮೂದಿಸುತ್ತೇವೆ.
  • ಉದ್ದ/ಮೌಲ್ಯಗಳು - ಈ ಕಾಲಮ್‌ನಲ್ಲಿನ ನಮೂದು ಹೊಂದಬಹುದಾದ ಗರಿಷ್ಠ ಉದ್ದವನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಲು ಬಳಸಲಾಗುತ್ತದೆ.
  • ಸೂಚ್ಯಂಕ - ನಾವು "ಐಡಿ" ಕ್ಷೇತ್ರಕ್ಕಾಗಿ "ಪ್ರಾಥಮಿಕ" ಸೂಚ್ಯಂಕವನ್ನು ಬಳಸಿದ್ದೇವೆ. ಟೇಬಲ್ ರಚಿಸುವಾಗ, ಪ್ರಾಥಮಿಕ ಕೀಲಿಯಾಗಿ ಕೇವಲ ಒಂದು ಕಾಲಮ್ ಅನ್ನು ಬಳಸಲು ಶಿಫಾರಸು ಮಾಡಲಾಗಿದೆ. ಕೋಷ್ಟಕದಲ್ಲಿ ದಾಖಲೆಗಳನ್ನು ಪಟ್ಟಿ ಮಾಡಲು ಇದನ್ನು ಬಳಸಲಾಗುತ್ತದೆ ಮತ್ತು ಟೇಬಲ್ ಅನ್ನು ಹೊಂದಿಸುವಾಗ ಇದು ಅಗತ್ಯವಾಗಿರುತ್ತದೆ. ನಾನು "A_I" ಅನ್ನು ಸಹ ಗಮನಿಸಿದ್ದೇನೆ, ಇದರರ್ಥ "ಸ್ವಯಂ ಹೆಚ್ಚಳ" - ಸ್ವಯಂಚಾಲಿತವಾಗಿ ದಾಖಲೆ ಸಂಖ್ಯೆಗಳನ್ನು ನಿಯೋಜಿಸುವ ನಿಯತಾಂಕ (1,2,3,4...).
    "ಉಳಿಸು" ಬಟನ್ ಕ್ಲಿಕ್ ಮಾಡಿ ಮತ್ತು ಟೇಬಲ್ ಅನ್ನು ರಚಿಸಲಾಗುತ್ತದೆ.

ಹಂತ 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 ಪ್ರಶ್ನೆಯನ್ನಾಗಿ ಮಾಡುತ್ತದೆ ಮತ್ತು ಬಳಕೆದಾರ ಕೋಷ್ಟಕವನ್ನು ಕೈಬಿಡಲಾಗಿದೆ. ಸಿದ್ಧಪಡಿಸಿದ ಅಭಿವ್ಯಕ್ತಿಗಳು (ಬೌಂಡ್ ವೇರಿಯಬಲ್‌ಗಳು) ಮೂಲ ಪ್ರಶ್ನೆಯನ್ನು ಅಂತ್ಯಗೊಳಿಸಲು ಸೆಮಿಕೋಲನ್‌ಗಳು ಮತ್ತು ಉಲ್ಲೇಖಗಳನ್ನು ಅನುಮತಿಸುವುದಿಲ್ಲ ಆದ್ದರಿಂದ, DROP DATABASE ಆಜ್ಞೆಯು ಎಂದಿಗೂ ಕಾರ್ಯಗತಗೊಳ್ಳುವುದಿಲ್ಲ.

ಸಿದ್ಧಪಡಿಸಿದ ಅಭಿವ್ಯಕ್ತಿಗಳನ್ನು ಬಳಸಲು, ಡೇಟಾಬೇಸ್ ಆಬ್ಜೆಕ್ಟ್ನ ತಯಾರಿ () ವಿಧಾನವನ್ನು ಕರೆಯುವ ಹೊಸ ವೇರಿಯೇಬಲ್ ಅನ್ನು ನೀವು ಬರೆಯಬೇಕಾಗಿದೆ.

ಸರಿಯಾದ ಕೋಡ್:

getMessage(); ) // $first_Name = "ಥಾಮ್" ಡೇಟಾಬೇಸ್‌ಗೆ ನಾವು ಸೇರಿಸಲು ಬಯಸುವ ವ್ಯಕ್ತಿಗೆ ವೇರಿಯೇಬಲ್‌ಗಳನ್ನು ಹೊಂದಿಸಿ; $last_Name = "Vial"; $ಇಮೇಲ್ = " [ಇಮೇಲ್ ಸಂರಕ್ಷಿತ]"; // ಡೇಟಾಬೇಸ್ ಆಬ್ಜೆಕ್ಟ್‌ನ ತಯಾರಿ() ವಿಧಾನವನ್ನು ಕರೆಯುವ ವೇರಿಯೇಬಲ್ ಅನ್ನು ರಚಿಸಿ // ನೀವು ಚಲಾಯಿಸಲು ಬಯಸುವ SQL ಪ್ರಶ್ನೆಯನ್ನು ಪ್ಯಾರಾಮೀಟರ್ ಆಗಿ ನಮೂದಿಸಲಾಗಿದೆ, ಮತ್ತು ಪ್ಲೇಸ್‌ಹೋಲ್ಡರ್‌ಗಳನ್ನು ಈ ರೀತಿ ಬರೆಯಲಾಗಿದೆ: placeholder_name $my_Insert_Statement = $my_Db_Connection->prepare(" ವಿದ್ಯಾರ್ಥಿಗಳಿಗೆ ಸೇರಿಸು (ಹೆಸರು, ಕೊನೆಯ ಹೆಸರು, ಇಮೇಲ್) ಮೌಲ್ಯಗಳು (:ಮೊದಲ_ಹೆಸರು, :ಕೊನೆಯ_ಹೆಸರು, :ಇಮೇಲ್)"); // bindParam() ವಿಧಾನವನ್ನು ಬಳಸಲು ಪ್ರತಿ ಪ್ಲೇಸ್‌ಹೋಲ್ಡರ್ ಅನ್ನು ಯಾವ ವೇರಿಯೇಬಲ್ ಉಲ್ಲೇಖಿಸುತ್ತದೆ ಎಂಬುದನ್ನು ನಾವು ಈಗ ಸ್ಕ್ರಿಪ್ಟ್‌ಗೆ ಹೇಳುತ್ತೇವೆ // ಮೊದಲ ಪ್ಯಾರಾಮೀಟರ್ ಮೇಲಿನ ಹೇಳಿಕೆಯಲ್ಲಿನ ಪ್ಲೇಸ್‌ಹೋಲ್ಡರ್, ಇದು $my_Insert_Statement->bindParam (:first_name, $first_Name) ಅನ್ನು ಉಲ್ಲೇಖಿಸಬೇಕು (:last_name, $last_Name); ಈಗಷ್ಟೇ ವ್ಯಾಖ್ಯಾನಿಸಲಾಗಿದೆ // ಎಕ್ಸಿಕ್ಯೂಟ್() ವಿಧಾನವು ಅದು ಯಶಸ್ವಿಯಾದರೆ TRUE ಮತ್ತು ಅದು ವಿಫಲವಾದರೆ ತಪ್ಪು ಎಂದು ಹಿಂತಿರುಗಿಸುತ್ತದೆ, ಸಂದೇಶವನ್ನು ಮುದ್ರಿಸುವ ಆಯ್ಕೆಯನ್ನು ನಿಮಗೆ ನೀಡುತ್ತದೆ ($my_Insert_Statement->ಎಕ್ಸಿಕ್ಯೂಟ್()) ( ಪ್ರತಿಧ್ವನಿ "ಹೊಸ ದಾಖಲೆಯನ್ನು ಯಶಸ್ವಿಯಾಗಿ ರಚಿಸಲಾಗಿದೆ"; ) ಬೇರೆ (ಪ್ರತಿಧ್ವನಿ "ರೆಕಾರ್ಡ್ ರಚಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ"; ) // ಈ ಹಂತದಲ್ಲಿ ನೀವು ವೇರಿಯಬಲ್ ಡೇಟಾವನ್ನು ಬದಲಾಯಿಸಬಹುದು ಮತ್ತು ಡೇಟಾಬೇಸ್ ಡೇಟಾಗೆ ಹೆಚ್ಚಿನ ಡೇಟಾವನ್ನು ಸೇರಿಸಲು ಪ್ರಶ್ನೆಯನ್ನು ಚಲಾಯಿಸಬಹುದು $first_Name = "ಜಾನ್"; $last_Name = "ಸ್ಮಿತ್"; $ಇಮೇಲ್ = " [ಇಮೇಲ್ ಸಂರಕ್ಷಿತ]"; $my_Insert_Statement->ಎಕ್ಸಿಕ್ಯೂಟ್(); // ವೇರಿಯೇಬಲ್ ಅನ್ನು ಬದಲಾಯಿಸಿದಾಗ ($my_Insert_Statement->ಎಕ್ಸಿಕ್ಯೂಟ್()) (ಪ್ರತಿಧ್ವನಿ "ಹೊಸ ದಾಖಲೆಯನ್ನು ಯಶಸ್ವಿಯಾಗಿ ರಚಿಸಲಾಗಿದೆ"; ) ಬೇರೆ (ಪ್ರತಿಧ್ವನಿ "ರೆಕಾರ್ಡ್ ರಚಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ";

28, 29 ಮತ್ತು 30 ಸಾಲುಗಳಲ್ಲಿ, ನಾವು ಡೇಟಾಬೇಸ್ ಆಬ್ಜೆಕ್ಟ್‌ನ ಬೈಂಡ್‌ಪಾರಂ () ವಿಧಾನವನ್ನು ಬಳಸುತ್ತೇವೆ. ಬೈಂಡ್ ವ್ಯಾಲ್ಯೂ () ವಿಧಾನವೂ ಇದೆ, ಇದು ಹಿಂದಿನದಕ್ಕಿಂತ ಬಹಳ ಭಿನ್ನವಾಗಿದೆ.

  • bindParam () - ಎಕ್ಸಿಕ್ಯೂಟ್ () ವಿಧಾನವನ್ನು ತಲುಪಿದಾಗ ಈ ವಿಧಾನವು ಡೇಟಾವನ್ನು ಮೌಲ್ಯಮಾಪನ ಮಾಡುತ್ತದೆ. ಮೊದಲ ಬಾರಿಗೆ ಸ್ಕ್ರಿಪ್ಟ್ ಎಕ್ಸಿಕ್ಯೂಟ್() ವಿಧಾನವನ್ನು ತಲುಪಿದಾಗ, $first_Name "Thom" ಗೆ ಹೊಂದಿಕೆಯಾಗುತ್ತದೆ ಎಂದು ಅದು ನೋಡುತ್ತದೆ. ನಂತರ ಈ ಮೌಲ್ಯವನ್ನು ಬಂಧಿಸುತ್ತದೆ ಮತ್ತು ವಿನಂತಿಯನ್ನು ರನ್ ಮಾಡುತ್ತದೆ. ಸ್ಕ್ರಿಪ್ಟ್ ಎರಡನೇ ಎಕ್ಸಿಕ್ಯೂಟ್() ವಿಧಾನವನ್ನು ತಲುಪಿದಾಗ, $first_Name ಈಗ "ಜಾನ್" ಗೆ ಹೊಂದಿಕೆಯಾಗುತ್ತದೆ ಎಂದು ನೋಡುತ್ತದೆ. ನಂತರ ಅದು ಈ ಮೌಲ್ಯವನ್ನು ಬಂಧಿಸುತ್ತದೆ ಮತ್ತು ಹೊಸ ಮೌಲ್ಯಗಳೊಂದಿಗೆ ಮತ್ತೆ ಪ್ರಶ್ನೆಯನ್ನು ರನ್ ಮಾಡುತ್ತದೆ. ನಾವು ಒಂದು ಪ್ರಶ್ನೆಯನ್ನು ಒಮ್ಮೆ ವ್ಯಾಖ್ಯಾನಿಸಿದ್ದೇವೆ ಮತ್ತು ಸ್ಕ್ರಿಪ್ಟ್‌ನ ವಿವಿಧ ಹಂತಗಳಲ್ಲಿ ವಿಭಿನ್ನ ಡೇಟಾದೊಂದಿಗೆ ಅದನ್ನು ಮರುಬಳಕೆ ಮಾಡಿದ್ದೇವೆ ಎಂಬುದನ್ನು ನೆನಪಿಟ್ಟುಕೊಳ್ಳುವುದು ಬಹಳ ಮುಖ್ಯ.
  • bindValue() - ಈ ವಿಧಾನವು bindValue() ಅನ್ನು ತಲುಪಿದ ನಂತರ ಡೇಟಾವನ್ನು ಮೌಲ್ಯಮಾಪನ ಮಾಡುತ್ತದೆ. $first_Name ಅನ್ನು "Thom" ಗೆ ಹೊಂದಿಸಿರುವುದರಿಂದ, bindValue() ಅನ್ನು ತಲುಪಿದಾಗ, $my_Insert_Statement ನಲ್ಲಿ ಎಕ್ಸಿಕ್ಯೂಟ್() ವಿಧಾನವನ್ನು ಪ್ರತಿ ಬಾರಿಯೂ ಬಳಸಲಾಗುವುದು.
    ನಾವು $first_Name ವೇರಿಯೇಬಲ್ ಅನ್ನು ಮರುಬಳಕೆ ಮಾಡುತ್ತಿದ್ದೇವೆ ಮತ್ತು ಅದನ್ನು ಎರಡನೇ ಬಾರಿಗೆ ಹೊಸ ಮೌಲ್ಯವನ್ನು ನಿಯೋಜಿಸುತ್ತಿದ್ದೇವೆ ಎಂಬುದನ್ನು ಗಮನಿಸಿ. ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಚಲಾಯಿಸಿದ ನಂತರ, ಸ್ಕ್ರಿಪ್ಟ್‌ನ ಕೊನೆಯಲ್ಲಿ $first_Name ವೇರಿಯೇಬಲ್ "ಜಾನ್" ಮೌಲ್ಯವನ್ನು ಹೊಂದಿದ್ದರೂ ಸಹ, ಡೇಟಾಬೇಸ್‌ನಲ್ಲಿ ಎರಡೂ ಹೆಸರುಗಳನ್ನು ಸೂಚಿಸಲಾಗುತ್ತದೆ. ಅದು ರನ್ ಆಗುವ ಮೊದಲು PHP ಸಂಪೂರ್ಣ ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಪರಿಶೀಲಿಸುತ್ತದೆ ಎಂಬುದನ್ನು ನೆನಪಿಡಿ.

bindParam ಅನ್ನು bindValue ನೊಂದಿಗೆ ಬದಲಾಯಿಸಲು ನೀವು ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ನವೀಕರಿಸಿದರೆ, ನೀವು ಡೇಟಾಬೇಸ್‌ಗೆ ಎರಡು ಬಾರಿ "Thom Vial" ಅನ್ನು ಸೇರಿಸುತ್ತೀರಿ ಮತ್ತು ಜಾನ್ ಸ್ಮಿತ್ ಅನ್ನು ನಿರ್ಲಕ್ಷಿಸಲಾಗುತ್ತದೆ.

ಹಂತ 3 - ಯಶಸ್ಸನ್ನು ದೃಢೀಕರಿಸಿ ಮತ್ತು ಸಮಸ್ಯೆಗಳನ್ನು ಪರಿಹರಿಸಿ

ಡೇಟಾಬೇಸ್‌ಗೆ ಸಾಲುಗಳನ್ನು ಸೇರಿಸುವ ವಿನಂತಿಯು ಯಶಸ್ವಿಯಾದರೆ, ನಾವು ಈ ಕೆಳಗಿನ ಸಂದೇಶವನ್ನು ನೋಡುತ್ತೇವೆ:

ಸಾಮಾನ್ಯ ದೋಷಗಳನ್ನು ನಿವಾರಿಸುವುದು

MySQLi

ಯಾವುದೇ ಸಂದರ್ಭದಲ್ಲಿ, ದೋಷ ಸಂದೇಶವನ್ನು ಪ್ರದರ್ಶಿಸಲಾಗುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, ಕೋಡ್‌ನಲ್ಲಿ ಒಂದು ಸಿಂಟ್ಯಾಕ್ಸ್ ದೋಷವನ್ನು ಮಾಡೋಣ ಮತ್ತು ನಾವು ಈ ಕೆಳಗಿನವುಗಳನ್ನು ಪಡೆಯುತ್ತೇವೆ:

ಕೋಡ್‌ನ ಮೊದಲ ಭಾಗವು ಸರಿಯಾಗಿದೆ, ಸಂಪರ್ಕವನ್ನು ಯಶಸ್ವಿಯಾಗಿ ಸ್ಥಾಪಿಸಲಾಗಿದೆ, ಆದರೆ SQL ಪ್ರಶ್ನೆಯು ವಿಫಲವಾಗಿದೆ.

"ದೋಷ: ವಿದ್ಯಾರ್ಥಿಗಳೊಳಗೆ ಸೇರಿಸಿ (ಹೆಸರು, ಕೊನೆಯ ಹೆಸರು, ಇಮೇಲ್) ಮೌಲ್ಯಗಳು ("ಥಾಮ್", "ವೈಲ್", " [ಇಮೇಲ್ ಸಂರಕ್ಷಿತ]") ನಿಮ್ಮ SQL ಸಿಂಟ್ಯಾಕ್ಸ್‌ನಲ್ಲಿ ನೀವು ದೋಷವನ್ನು ಹೊಂದಿದ್ದೀರಿ; "(ಹೆಸರು, ಕೊನೆಯ ಹೆಸರು, ಇಮೇಲ್) ಮೌಲ್ಯಗಳು ("ಥಾಮ್", "ವೈಲ್", " ಬಳಿ ಬಳಸಲು ಹಕ್ಕುಗಳ ಸಿಂಟ್ಯಾಕ್ಸ್‌ಗಾಗಿ ನಿಮ್ಮ MySQL ಸರ್ವರ್ ಆವೃತ್ತಿಗೆ ಅನುಗುಣವಾದ ಕೈಪಿಡಿಯನ್ನು ಪರಿಶೀಲಿಸಿ [ಇಮೇಲ್ ಸಂರಕ್ಷಿತ] 1 ನೇ ಸಾಲಿನಲ್ಲಿ ")"

ಸ್ಕ್ರಿಪ್ಟ್ ಕ್ರ್ಯಾಶ್ ಆಗಲು ಕಾರಣವಾದ ಸಿಂಟ್ಯಾಕ್ಸ್ ದೋಷವಿತ್ತು. ದೋಷ ಇಲ್ಲಿದೆ:

$sql = "ವಿದ್ಯಾರ್ಥಿಗಳಿಗೆ ಸೇರಿಸಿ (ಹೆಸರು, ಕೊನೆಯ ಹೆಸರು, ಇಮೇಲ್) ಮೌಲ್ಯಗಳು ("ಥಾಮ್", "ವೈಲ್", " [ಇಮೇಲ್ ಸಂರಕ್ಷಿತ]")";

ನಾವು ಸಾಮಾನ್ಯವಾದವುಗಳ ಬದಲಿಗೆ ಸುರುಳಿಯಾಕಾರದ ಕಟ್ಟುಪಟ್ಟಿಗಳನ್ನು ಬಳಸಿದ್ದೇವೆ. ಇದು ತಪ್ಪಾಗಿದೆ ಮತ್ತು ಸ್ಕ್ರಿಪ್ಟ್ ಸಿಂಟ್ಯಾಕ್ಸ್ ದೋಷವನ್ನು ಸೃಷ್ಟಿಸಿದೆ.

ಪಿಡಿಒ

PDO ಸಂಪರ್ಕದ ಸಾಲು 7 ದೋಷ ಮೋಡ್ ಅನ್ನು "ಎಲ್ಲಾ ವಿನಾಯಿತಿಗಳನ್ನು ಪ್ರದರ್ಶಿಸಲು" ಹೊಂದಿಸುತ್ತದೆ. ಬೇರೆ ಮೌಲ್ಯಕ್ಕೆ ಹೊಂದಿಸಿದರೆ ಮತ್ತು ವಿನಂತಿಯು ವಿಫಲವಾದರೆ, ನಾವು ಯಾವುದೇ ದೋಷ ಸಂದೇಶಗಳನ್ನು ಸ್ವೀಕರಿಸುವುದಿಲ್ಲ.

ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸುವಾಗ ಮಾತ್ರ ಈ ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು ಬಳಸಬೇಕು. ಸಕ್ರಿಯಗೊಳಿಸಿದಾಗ, ಭದ್ರತಾ ಕಾರಣಗಳಿಗಾಗಿ ಉತ್ತಮವಾಗಿ ಮರೆಮಾಡಲಾಗಿರುವ ಡೇಟಾಬೇಸ್ ಮತ್ತು ಟೇಬಲ್ ಹೆಸರುಗಳನ್ನು ಪ್ರದರ್ಶಿಸಬಹುದು. ಮೇಲೆ ವಿವರಿಸಿದ ಸಂದರ್ಭದಲ್ಲಿ, ಸಾಮಾನ್ಯ ಕಟ್ಟುಪಟ್ಟಿಗಳ ಬದಲಿಗೆ ಸುರುಳಿಯಾಕಾರದ ಕಟ್ಟುಪಟ್ಟಿಗಳನ್ನು ಬಳಸಿದಾಗ, ದೋಷ ಸಂದೇಶವು ಈ ರೀತಿ ಕಾಣುತ್ತದೆ:

ಮಾರಣಾಂತಿಕ ದೋಷ: Uncaughtexception "PDOException" ಸಂದೇಶದೊಂದಿಗೆ "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 ಕಿಲೋಬೈಟ್‌ಗಳಷ್ಟು ಮಾಹಿತಿಯನ್ನು ಸಂಗ್ರಹಿಸಬಹುದು
  • MEDIUMBLOB - 16 ಮೆಗಾಬೈಟ್‌ಗಳವರೆಗೆ
  • LONGBLOB 4 ಗಿಗಾಬೈಟ್‌ಗಳವರೆಗೆ

ಫಾರ್ ಡೇಟಾಬೇಸ್‌ನಲ್ಲಿ ಇಮೇಜ್ ಫೈಲ್ ಅನ್ನು ಸಂಗ್ರಹಿಸುವುದುನೀವು ಫೈಲ್ ಅನ್ನು ವೇರಿಯೇಬಲ್ ಆಗಿ ಓದಬೇಕು ಮತ್ತು ಟೇಬಲ್‌ಗೆ ಡೇಟಾವನ್ನು ಸೇರಿಸಲು ಪ್ರಶ್ನೆಯನ್ನು ರಚಿಸಬೇಕು.

MySQL ಡೇಟಾಬೇಸ್‌ಗೆ ಚಿತ್ರವನ್ನು ಸೇರಿಸಲು ಪುಟದಲ್ಲಿ ಫಾರ್ಮ್ ಅನ್ನು ಸಿದ್ಧಪಡಿಸಲಾಗುತ್ತಿದೆ

ನನ್ನ ವಿಷಯದಲ್ಲಿ ಕಾರ್ಯವಾಗಿತ್ತು PHP ಬಳಸಿಕೊಂಡು ಫಾರ್ಮ್ ಮೂಲಕ ಡೇಟಾಬೇಸ್‌ಗೆ ಎರಡು ಚಿತ್ರಗಳನ್ನು ಸೇರಿಸಿ. ನಾವು ಎರಡು ಕ್ಷೇತ್ರಗಳೊಂದಿಗೆ ಫಾರ್ಮ್ ಅನ್ನು ಹೊಂದಿದ್ದೇವೆ ಮತ್ತು ಸಲ್ಲಿಸು ಬಟನ್ ಅನ್ನು ಹೊಂದಿದ್ದೇವೆ:

ಫಾರ್ಮ್ ಹೆಸರು=”form1″ ವಿಧಾನ=”ಪೋಸ್ಟ್” ಕ್ರಿಯೆ=”add_image.php”
ಎನ್ಕ್ಟೈಪ್="ಮಲ್ಟಿಪಾರ್ಟ್/ಫಾರ್ಮ್-ಡೇಟಾ"

ಆ ಗುಣಲಕ್ಷಣವನ್ನು ನಾನು ನಿಮಗೆ ನೆನಪಿಸುತ್ತೇನೆ ಕ್ರಮಇಮೇಜ್ ಫೈಲ್‌ಗಳನ್ನು ಲೋಡ್ ಮಾಡುವ ಫೈಲ್ ಅನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸುತ್ತದೆ. ಗುಣಲಕ್ಷಣ ಎನ್ಕ್ಟೈಪ್ಫಾರ್ಮ್ ವಿಷಯವನ್ನು ಹೇಗೆ ಎನ್ಕೋಡ್ ಮಾಡಲಾಗಿದೆ ಮತ್ತು ಫೈಲ್ ಅಪ್ಲೋಡ್ ಮಾಹಿತಿಯನ್ನು ಸೂಚಿಸುತ್ತದೆ. ಗುಣಲಕ್ಷಣವನ್ನು ಸರಿಯಾಗಿ ಭರ್ತಿ ಮಾಡುವುದು ಹೇಗೆ ಎಂದು ನೋಡಿ ಎನ್ಕ್ಟೈಪ್ತಪ್ಪಿಸುವ ಸಲುವಾಗಿ.

ಗಮನಿಸಿ:ಬಹು ಫೈಲ್‌ಗಳನ್ನು ಅಪ್‌ಲೋಡ್ ಮಾಡಲು ಬೆಂಬಲವನ್ನು ಆವೃತ್ತಿ 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[‘ಬಳಕೆದಾರರ ಫೈಲ್’][‘ಹೆಸರು’]
- ಮೌಲ್ಯ 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); "ನೀವು ಚಿತ್ರವನ್ನು ಲೋಡ್ ಮಾಡಿಲ್ಲ, ಆದ್ದರಿಂದ ಅದನ್ನು ಸೇರಿಸಲಾಗುವುದಿಲ್ಲ." ."; ಹಿಂತಿರುಗಿ;) $ ಇಮೇಜ್ ಹಿಂತಿರುಗಿ; ?>

ಆದ್ದರಿಂದ ಈ ಲೇಖನದಲ್ಲಿ ನಾವು MySQL ಡೇಟಾಬೇಸ್‌ನಲ್ಲಿ ಚಿತ್ರವನ್ನು ಹೇಗೆ ಉಳಿಸುವುದು ಎಂಬುದರ ಕುರಿತು ಮಾತನಾಡಿದ್ದೇವೆ , PHP ಬಳಸಿ.