php - एसक्यूएल वाक्यविन्यास:एसक्यूएल चुनिंदा क्वेरी से गुजर रहा है




sql mysqli (4)

मैं चुनिंदा क्वेरी में वेरिएबल्स पास करने का प्रयास कर रहा हूं। प्रश्न नीचे है

$Email = $_POST["Email"];
$Username = $_POST["User_Name"];
$FirstName = $_POST["First_Name"];
$Password = $_POST["Password"];


$CreateTable = "CREATE TABLE IF NOT EXISTS "+$Username+" (
address_id int(11) NOT NULL 
) ENGINE=MyISAM AUTO_INCREMENT=9 DEFAULT CHARSET=utf8;" ;

लेकिन टेबल नहीं बना रही थी मैं कहाँ याद किया?

आपका बहुमूल्य समय धन्यवाद


Answers

आपको अपने PHP फ़ाइल की जांच करनी चाहिए। और कोशिश

$tableUser = "CREATE TABLE IF NOT EXISTS ".$Username."(
index int(11) NOT NULL
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;" ;

आप दो स्ट्रिंग कनेक्ट करने के लिए '+' प्रतीक का उपयोग कर रहे हैं (जो php में काम नहीं करेगा)।

आपको '।' का प्रयोग करना चाहिए दो तारों को जोड़ने के लिए

जवाब देखें: PHP में दो स्ट्रिंग्स को एक साथ कैसे संयोजित किया जाए?

आपका एसक्यूएल कथन इस तरह दिखना चाहिए:

$CreateTable = "CREATE TABLE IF NOT EXISTS ".$Username." (
address_id int(11) NOT NULL 
) ENGINE=MyISAM AUTO_INCREMENT=9 DEFAULT CHARSET=utf8;" ;

बीटीडब्लू, यह आपकी पीएचपी स्क्रिप्ट के भीतर (नॉर डिलीटिंग) टेबल बनाने जैसे संवेदनशील प्रश्नों को निष्पादित करने के लिए अनुशंसित नहीं है।


चूंकि आप इस प्रकार की क्वेरी के साथ prepared statements का उपयोग नहीं कर पाएंगे, इसलिए आपको संभवतः संभावित उपयोगकर्ता इनपुट से संभावित हानिकारक वर्णों को हटाने का प्रयास करना चाहिए।

$email = filter_input( INPUT_POST, 'Email', FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_LOW | FILTER_FLAG_STRIP_HIGH );
$username = filter_input( INPUT_POST, 'User_Name', FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_LOW | FILTER_FLAG_STRIP_HIGH );
$firstname = filter_input( INPUT_POST, 'First_Name', FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_LOW | FILTER_FLAG_STRIP_HIGH );
$password = filter_input( INPUT_POST, 'Password', FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_LOW | FILTER_FLAG_STRIP_HIGH );


/* Strip any non alphanumeric charachters and replace space with underscore */
$username = preg_replace('@^[\da-z][email protected]','', str_replace( ' ', '_', $username ) );


$sql = "CREATE TABLE IF NOT EXISTS `{$username}` (
    address_id int(11) NOT NULL 
) ENGINE=MyISAM DEFAULT CHARSET=utf8;";

$db=new mysqli( $dbhost, $dbuser, $dbpwd, $dbname );
$db->query( $sql );

नीचे समाधान एक MySQL डेटाबेस के लिए काम करता है:

UPDATE table1 a , table2 b 
SET a.columname = 'some value' 
WHERE b.columnname IS NULL ;




php sql mysqli