Problemas sintaxis con sentencia GRANT y php , asignar privilegios

  • Autor Autor iniciopublic
  • Fecha de inicio Fecha de inicio
iniciopublic

iniciopublic

Préstamo
Ómicron
Verificación en dos pasos activada
Verificado por Whatsapp
Hola a todos estoy tratando de hacer un pequeño programa para crear a un usuario y asignarle privilegios en el gestor de base de datos en php

este es el código :

PHP:
<?php 
$host1='localhost'; 
$user1='root'; 
$pass1=''; 
$conexion=mysql_connect($host1,$user1,$pass1); 
if(!$_POST) 
{ 
?> 
<form id="form1" method="post" action="base.php" enctype="multipart/form-data"> 
<input type="text" name="usuario" > Nombre usuario <br> 
<br><b>Datos:</b><br> 
<input type="checkbox" name="insert" value="insert"> Insert <br> 
<input type="checkbox" name="delete" value="DELETE"> Delete<br> 
<input type="checkbox" name="file" value="FILE"> File<br> 
<input type="checkbox" name="SELECT" value="SELECT"> SELECT<br> 
<input type="checkbox" name="UPDATE" value="UPDATE">UPDATE<br> 
<INPUT name="Registrar" type=submit value="Registrar"> 
<?php 
} 

else 
{ 

$host = 'localhost'; 
$pass = '12345'; 
$user =$_POST["usuario"];
$delete =$_POST["delete"]; 
$file =$_POST["file"]; 
$insert =$_POST["insert"]; 
$select =$_POST["SELECT"]; 
$update =$_POST["UPDATE"]; 

$createQ = "CREATE USER '{$user}'@'{$host}' IDENTIFIED BY '{$pass}'"; 
$grantQ = "GRANT  {$file},{$insert},{$delete},{$selec},{$update}  ON  *.* TO '{$user}'@'{$host}' WITH GRANT OPTION"; 
if(mysql_query($createQ)){ 
    echo 'Usuario creado <br/>'; 
    if(mysql_query($grantQ)){ 
        echo 'Permisos concedidos<br/>'; 
    }else{ 
        echo 'permissions query failed:'.mysql_error().'<br/>'; 
    } 
     
}else{ 
    echo '<b>El usuario posiblemente ya existe </b>:'.mysql_error().'<br/>'; 
} 
} 
?>

El problema con las comas (, ) , si no seleccione un checkbox la coma en la sentencia queda (por lo que quedarian 2 comas juntas) y me aparece error en la sintaxis

¿Que puedo hacer en ese caso?

Le agradezco su pronta ayuda

saludos
 
Ponle condiciones, algo como:
PHP:
$grant = [];

if ( $file )	  $grant[] = $file;
if ( $insert )	$grant[] = $insert;
if ( $delete )	$grant[] = $delete;
if ( $select )	$grant[] = $select;
if ( $update )	$grant[] = $update;

$grant = implode(',', $grant);

y ya después en el query:
PHP:
$grantQ = "GRANT  {$grant}  ON  *.* TO '{$user}'@'{$host}' WITH GRANT OPTION";

Saludos.
 
Última edición:
Atrás
Arriba