if(isset($_POST['title, question, tags']))
सही सिंटैक्स नहीं है
इसके बजाय आप यह कर सकते हैं:
if(isset($_POST['title']) && isset($_POST['question']) && isset($_POST['tags']))
या यहां तक कि
if(isset($_POST['title'], $_POST['question'], $_POST['tags']))
इसे बिना किसी बाध्यता के निष्पादित करना आसान होगा:
डेटा डालें
function insertData($tablename, $params){
//build query string
$column_string = implode(',', array_keys($params));
$value_string = implode(',', array_fill(0, count($params), '?'));
$sql_string = "INSERT INTO {$tablename} ({$columnString}) VALUES ({$value_string})";
//prepare query
$mysqlConnection = getConnection();
$statement = $mysqlConnection->prepare($sql_string);
//execute query
$success = $statement->execute(array_values($params));
//return boolean success
return $success;
}
लेकिन अगर आपको वास्तव में बाँधने की ज़रूरत है, तो आप इसे निम्न तरीके से कर सकते हैं:
function insertDataBind($tablename, $params){
//build query string
$column_string = implode(',', array_keys($params));
$value_string = implode(',:', array_keys($params));
$sql_string = "INSERT INTO {$tablename} ({$column_string}) VALUES (:{$value_string})";
//prepare query
$mysqlConnection = getConnection();
$statement = $mysqlConnection->prepare($sql);
//bind
foreach($params as $key=>$value){
$statement->bindValue($key, $value);
}
//execute query
$success = $statement->execute();
//return boolean success
return $success;
}
उपयोग:
if(isset($_POST['title'], $_POST['question'], $_POST['tags'])){
$params = array('title' => $_POST['title'],
'question'=>$_POST['question'],
'tags'=>$_POST['tags']
);
$success = insertData('questions', $params);
if(!$success)
echo 'Sorry failed :(';
}