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




sql mysqli (2)

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

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

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

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

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

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

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

$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;" ;

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

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


चूंकि आप इस प्रकार की क्वेरी के साथ 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 );






mysqli