subconsultas que ejemplos datos consultas avanzadas php sql mysqli

php - ejemplos - que es select



Sintaxis SQL: pasar la consulta de selección de variable a SQL (3)

Como no podría usar prepared statements con este tipo de consulta, quizás debería intentar eliminar caracteres potencialmente dañinos de la entrada de usuario proporcionada.

$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]$@i'','''', 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 );

Estoy tratando de pasar variables a la consulta de selección. Quer está abajo

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

Pero la mesa no estaba creando. Donde me perdí?

Gracias a tu valioso tiempo.


Está utilizando el símbolo ''+'' para conectar dos cadenas (que no funcionarán en php).

Deberías usar ''.'' para conectar dos cadenas.

Ver respuesta: ¿Cómo combinar dos cadenas en PHP?

Su declaración SQL debería verse así:

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

Por cierto, no se recomienda ejecutar consultas confidenciales, como crear tablas (NO BORRAR) dentro de su script php.


Deberías verificar tu archivo PHP. Y prueba

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