Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Fiz este code para apagar banco de dados do mysql:
public function deleteDatabase() {
foreach ($_POST['marcar'] as $value) {
$database[] = 'information_schema';
$database[] = 'performance_schema';
$database[] = 'mysql';
$database[] = 'yuno-gasai';
if (in_array($value, $database)) {
exit ("You cannot delete that database.");
} else {
try {
// Prepare the query to execute
$query = $this->db->prepare( "DROP DATABASE `{$value}`", array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));
// Execute the query
$query->execute();
} catch(PDOException $e) {
echo $e->getMessage();
}
}
}
}O code acima funciona certo!E acabei descobrindo que o bind pode ajudar no SQL injection:
public function deleteDatabase() {
foreach ($_POST['marcar'] as $value) {
$database[] = 'information_schema';
$database[] = 'performance_schema';
$database[] = 'mysql';
$database[] = 'yuno-gasai';
if (in_array($value, $database)) {
exit ("You cannot delete that database.");
} else {
try {
// Prepare the query to execute
$query = $this->db->prepare( "DROP DATABASE `:name`");
$parameters = array(':name' => $value);
// Execute the query
$query->execute($parameters);
} catch(PDOException $e) {
echo $e->getMessage();
}
}
}
}
Depois disso ela exibi este erroWarning: PDOStatement::execute(): SQLSTATE[HY000]: General error: 1008 Can't drop database ''olá mundo''; database doesn't exist in C:\xampp\htdocs\application\model\model.php on line 121Carregando comentários...