Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

PHP फॉर्म mySQL डेटाबेस में सम्मिलित नहीं हो रहा है

दूसरों ने आपको पहले ही उत्तर दे दिए हैं। जोड़ने के लिए, आप कॉलम नामों के आसपास उद्धरण चिह्नों का उपयोग कर रहे हैं जो कि बैकटिक होना चाहिए या उद्धरणों को पूरी तरह से हटा देना चाहिए।

बदलें:

INSERT INTO orders ('name', 'tacoOrder')
                    ^    ^  ^         ^

करने के लिए

INSERT INTO orders (`name`, `tacoOrder`)

या

INSERT INTO orders (name, tacoOrder)

या एक पूर्ण उत्तर के रूप में:

$name = $_POST['name'];
$tacoOrder = $_POST['tacoOrder'];

$query = "INSERT INTO orders (`name`, `tacoOrder`) VALUES ('$name', '$tacoOrder')";

सिडेनोट:बैकटिक्स की आवश्यकता नहीं है लेकिन कॉलम नामों के लिए सिंगल कोट्स का उपयोग नहीं किया जा सकता है। यह सिर्फ आदत का एक बल है कि मैं स्वयं कॉलम नामों के आसपास बैकटिक्स का उपयोग करता हूं।

साथ ही, यह $mysql_close(); $ . नहीं होना चाहिए mysql_close . के सामने लेकिन $लिंक कोष्ठक के अंदर:

mysql_close($link) में बदलें;

फिर भी जैसा कि मिस्टर एलियन ने बताया, mysql_close() के लिए वेरिएबल वैकल्पिक है (इसके लिए धन्यवाद)

आपके पास एक अनुपलब्ध ) भी है में if(!mysql_query($query) जिसे if(!mysql_query($query)) . के रूप में पढ़ना चाहिए

mysqli_* . पर स्विच करने पर विचार करें तैयार बयान या पीडीओ के साथ कार्य करता है। mysql_* फ़ंक्शंस बहिष्कृत कर दिए गए हैं और भविष्य के रिलीज़ से हटा दिए जाएंगे।

पूर्ण पुनर्लेखन:(परीक्षण किया गया और मेरे सर्वर पर काम कर रहा है)

<?php

define('DB_NAME', 'tacoPractice');
define('DB_USER', 'root');
define('DB_PASS', 'root');
define('DB_HOST', 'localhost');

$link = mysql_connect(DB_HOST, DB_USER, DB_PASS);

if(!$link)
{
    die('Could not connect to database: ' . mysql_error());
}

$db_select = mysql_select_db(DB_NAME);

if(!$db_select)
{
    die('Can\'t use ' . DB_NAME . ': ' . mysql_error());
}

echo "HOLY EFF";
$name = $_POST['name'];
$tacoOrder = $_POST['tacoOrder'];

$query = "INSERT INTO orders (name, tacoOrder) VALUES ('$name', '$tacoOrder')";
if(!mysql_query($query))
{
    die("DAMMIT");
}
else{ echo "Success"; }

mysql_close();

?>

आप इस तरीके का भी इस्तेमाल कर सकते हैं जो थोड़ा अलग है:

$query = mysql_query("INSERT INTO orders (name, tacoOrder) VALUES ('$name', '$tacoOrder')");
if (!$query) {
    die('Invalid query: ' . mysql_error());
}
else{ echo "Success"; }

फुटनोट:

आप खाली डेटा प्रविष्टियाँ प्राप्त करने का जोखिम उठाते हैं क्योंकि आप जाँच नहीं कर रहे हैं कि आपके प्रपत्र तत्व खाली छोड़े गए हैं या नहीं।

आप इस प्रभाव के लिए एक सशर्त कथन का उपयोग कर सकते हैं:

if(!empty($_POST['name']) || !empty($_POST['tacoOrder']))
{
// continue with code processing
}

साथ ही, अवलाद ने उसके उत्तर में जो उल्लेख किया है उसका उपयोग करें mysql_real_escape_string() . का उपयोग करने के संबंध में

आप SO मैं PHP में SQL इंजेक्शन को कैसे रोक सकता हूँ?

यहाँ एक (मूल) mysqli_* है mysqli_real_escape_string() . के साथ आधारित विधि फ़ंक्शन और एक सशर्त विवरण यह जांचने के लिए कि क्या कोई फ़ील्ड खाली है।

यदि किसी एक फ़ील्ड को खाली छोड़ दिया जाता है, तो क्वेरी निष्पादित नहीं होगी।

<?php
define('DB_NAME', 'tacoPractice');
define('DB_USER', 'root');
define('DB_PASS', 'root');
define('DB_HOST', 'localhost');

$link = mysqli_connect(DB_HOST, DB_USER, DB_PASS);

if(!$link)
{
    die('Could not connect to database: ' . mysqli_error());
}

$db_select = mysqli_select_db($link,DB_NAME);

if(!$db_select)
{
    die('Can\'t use ' . DB_NAME . ': ' . mysqli_error());
}

echo "HOLY EFF";
$name = mysqli_real_escape_string($link,$_POST['name']);
$tacoOrder = mysqli_real_escape_string($link,$_POST['tacoOrder']);


if(!empty($_POST['name']) || !empty($_POST['tacoOrder'])){
$query = "INSERT INTO orders (name, tacoOrder) VALUES ('$name', '$tacoOrder')";
if(!mysqli_query($link,$query))
{
    die("DAMMIT");
}
else{ echo "Success"; }

mysqli_close($link);

}

?>


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP mysql एक कीवर्ड का उपयोग करके कई टेबल खोजता है

  2. MySQL पर NOT IN का विकल्प

  3. कैसे एक mysql परिणाम से पहली और अंतिम डेटा पंक्ति का चयन करने के लिए?

  4. लगातार दिनों की अधिकतम लंबाई की जाँच करना जो विशिष्ट स्थिति को पूरा करते हैं

  5. PHP में किसी अन्य वर्ग से MySQLi का उपयोग करना