{"id":6391,"date":"2018-05-17T10:54:39","date_gmt":"2018-05-17T10:54:39","guid":{"rendered":"https:\/\/blog.hostinger.io\/es-tutoriales\/?p=6391"},"modified":"2025-03-05T11:57:35","modified_gmt":"2025-03-05T10:57:35","slug":"como-usar-php-para-insertar-datos-en-mysql","status":"publish","type":"post","link":"\/es\/tutoriales\/como-usar-php-para-insertar-datos-en-mysql","title":{"rendered":"C\u00f3mo usar PHP para insertar datos en MySQL"},"content":{"rendered":"<p>En este tutorial, aprender&aacute; a<strong> INSERTAR<\/strong> datos en tu base de datos MySQL desde scripts <strong>PHP<\/strong>. Hay dos m&eacute;todos que puedes usar, MySQLi y PDO. Antes de comenzar esta gu&iacute;a sobre c&oacute;mo insertar datos PHP MySQL, necesitar&aacute;s acceso a tu panel de control de hosting.<\/p><p>Si no est&aacute;s seguro de c&oacute;mo configurar tu conexi&oacute;n MySQL, puede consultar este <a href=\"\/es\/tutoriales\/conectar-php-mysql\/\">tutorial PHP MySQL<\/a> que cubre los pasos m&aacute;s importantes para trabajar con PHP y bases de datos.<\/p><figure class=\"wp-block-image size-large\"><a href=\"https:\/\/assets.hostinger.com\/content\/tutorials\/pdf\/Speed-Up-Your-Website-ES.pdf\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" width=\"1024\" height=\"283\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2022\/12\/eBook-Speed-Up-your-website-ES.png\/public\" alt=\"\" class=\"wp-image-25983\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2022\/12\/eBook-Speed-Up-your-website-ES.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2022\/12\/eBook-Speed-Up-your-website-ES.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2022\/12\/eBook-Speed-Up-your-website-ES.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2022\/12\/eBook-Speed-Up-your-website-ES.png\/w=768,fit=scale-down 768w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2022\/12\/eBook-Speed-Up-your-website-ES.png\/w=1536,fit=scale-down 1536w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure><h2 class=\"wp-block-heading\" id=\"h-crear-una-tabla-opcional\">Crear una tabla (Opcional)<\/h2><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"336\" height=\"223\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2023\/05\/databases-phpMyAdmin-es.jpg\/public\" alt=\"phpmyadmin en hostinger\" class=\"wp-image-32598\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2023\/05\/databases-phpMyAdmin-es.jpg\/w=336,fit=scale-down 336w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2023\/05\/databases-phpMyAdmin-es.jpg\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2023\/05\/databases-phpMyAdmin-es.jpg\/w=150,fit=scale-down 150w\" sizes=\"(max-width: 336px) 100vw, 336px\" \/><\/figure><\/div><p>En primer lugar, debes crear una tabla para tus datos. Si ya has creado una, despl&aacute;zate hacia abajo hasta la siguiente secci&oacute;n. Crear una tabla es un proceso simple que puedes hacer con la opci&oacute;n <strong>phpMyAdmin<\/strong>, que encuentras en tu panel de control de hosting.<\/p><div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" width=\"908\" height=\"350\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2018\/05\/hostinger-phpmyadmin-vista.png\/public\" alt=\"hostinger-phpmyadmin-vista\" class=\"wp-image-6394\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2018\/05\/hostinger-phpmyadmin-vista.png\/w=908,fit=scale-down 908w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2018\/05\/hostinger-phpmyadmin-vista.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2018\/05\/hostinger-phpmyadmin-vista.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2018\/05\/hostinger-phpmyadmin-vista.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 908px) 100vw, 908px\" \/><\/figure><\/div><p>Despu&eacute;s de ingresar a tu p&aacute;gina de phpMyAdmin, deber&iacute;as ver algo similar a esto:<\/p><div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" width=\"900\" height=\"353\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2018\/05\/hostinger-phpmy-admin-crear-base-de-datos.png\/public\" alt=\"hostinger-phpmy-admin-crear-base-de-datos\" class=\"wp-image-6395\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2018\/05\/hostinger-phpmy-admin-crear-base-de-datos.png\/w=900,fit=scale-down 900w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2018\/05\/hostinger-phpmy-admin-crear-base-de-datos.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2018\/05\/hostinger-phpmy-admin-crear-base-de-datos.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2018\/05\/hostinger-phpmy-admin-crear-base-de-datos.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 900px) 100vw, 900px\" \/><\/figure><\/div><p>Crearemos una tabla llamada <strong>Students<\/strong> para nuestra base de datos <strong>u266072517_name<\/strong>. Puedes crear una nueva tabla haciendo clic en el bot&oacute;n <strong>Create table<\/strong>. Despu&eacute;s de eso, ver&aacute;s esta nueva p&aacute;gina donde puedes ingresar toda la informaci&oacute;n necesaria para tu tabla:<\/p><p>Esta es la configuraci&oacute;n m&aacute;s simple que puedes usar para una tabla, para obtener m&aacute;s informaci&oacute;n sobre la estructura de la tabla\/base de datos y qu&eacute; tipo de configuraci&oacute;n puedes usar con esas columnas, consulta la documentaci&oacute;n oficial de <a href=\"https:\/\/www.phpmyadmin.net\/docs\/\" target=\"_blank\" rel=\"noopener\">phpMyAdmin<\/a>.<\/p><p>Por ahora, aqu&iacute; hay algunas explicaciones sencillas de las columnas que usamos:<\/p><ul class=\"wp-block-list\">\n<li><strong>Name<\/strong>: Este es el nombre de tu columna. Se mostrar&aacute; en la parte superior de tu tabla.<\/li>\n\n\n\n<li><strong>Type<\/strong>: Puedes establecer un tipo de columna aqu&iacute;. Por ejemplo, seleccionamos <strong>varchar<\/strong> porque necesitamos ingresar un tipo de cadena caracteres de nombre aqu&iacute; (que tenga letras, no n&uacute;meros).<\/li>\n\n\n\n<li><strong>Length\/Values<\/strong>: Se usa para especificar la longitud m&aacute;xima que tu entrada en esta columna puede tener.<\/li>\n\n\n\n<li><strong>Index<\/strong>: Usamos el &iacute;ndice &laquo;Principal&raquo; para nuestro campo &laquo;ID&raquo;. Al crear una tabla, se recomienda tener una columna de ID. Se utiliza para enumerar las entradas de la tabla y se requiere para configurar las relaciones de la tabla. Tambi&eacute;n marqu&eacute; &laquo;<strong>A_I<\/strong>&laquo;, lo que significa <strong>Auto Incremento<\/strong>. Esto servir&aacute; para enumerar autom&aacute;ticamente las entradas (1,2,3,4 &hellip;).<\/li>\n<\/ul><p>Haz clic en <strong>Save<\/strong> para guardar y se crear&aacute; tu tabla.<\/p><h2 class=\"wp-block-heading\" id=\"h-codigo-php-para-insertar-datos-en-una-base-de-datos-mysql\">C&oacute;digo PHP para INSERTAR datos en una base de datos MySQL<\/h2><p>Hay dos m&eacute;todos que puedes usar para INSERTAR datos en tu base de datos MySQL. El m&eacute;todo PHP MySQLi y el m&eacute;todo PHP Data Object o PDO.<\/p><h3 class=\"wp-block-heading\" id=\"h-metodo-mysqli\">M&eacute;todo <a href=\"https:\/\/www.php.net\/manual\/en\/book.mysqli.php\" target=\"_blank\" rel=\"noopener\">MySQLi<\/a><\/h3><p>En primer lugar, debes establecer una conexi&oacute;n con una base de datos tomando como referencia nuestro tutorial anterior. Una vez hecho esto, podemos proceder con la consulta MySQL <strong>INSERT<\/strong>. Aqu&iacute; hay un c&oacute;digo de ejemplo completo con la conexi&oacute;n b&aacute;sica y los m&eacute;todos de inserci&oacute;n:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;?php\n$servername = \"mysql.hostinger.co.uk\";\n$database = \"u266072517_name\";\n$username = \"u266072517_user\";\n$password = \"buystuffpwd\";\n\/\/ Create connection\n$conn = mysqli_connect($servername, $username, $password, $database);\n\/\/ Check connection\nif (!$conn) {\n      die(\"Connection failed: \" . mysqli_connect_error());\n}\n \necho \"Connected successfully\";\n \n$sql = \"INSERT INTO Students (name, lastname, email) VALUES ('Test', 'Testing', 'Testing@tesing.com')\";\nif (mysqli_query($conn, $sql)) {\n      echo \"New record created successfully\";\n} else {\n      echo \"Error: \" . $sql . \"&lt;br&gt;\" . mysqli_error($conn);\n}\nmysqli_close($conn);\n?&gt;<\/pre><p>Entonces, la primera parte del c&oacute;digo (l&iacute;neas <strong>3 a 18<\/strong>) tiene como objetivo la conexi&oacute;n a la base de datos. No vamos a analizar esta parte de nuevo, pero si quieres saber qu&eacute; significa cada l&iacute;nea del c&oacute;digo, mira nuestra gu&iacute;a anterior sobre <a href=\"\/es\/tutoriales\/conectar-php-mysql\/\">c&oacute;mo conectarte a una base de datos<\/a>.<\/p><p>Comencemos con la l&iacute;nea n&uacute;mero <strong>19<\/strong>:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$sql = \"INSERT INTO Students (name, lastname, email) VALUES ('Test', 'Testing', 'Testing@tesing.com')\";<\/pre><p>Esta es la l&iacute;nea m&aacute;s importante del c&oacute;digo PHP, ya que es la que logra insertar datos en la base de datos MySQL. <strong>INSERT INTO<\/strong> es una declaraci&oacute;n que agrega datos a la tabla de la base de datos especificada. En nuestro ejemplo, estamos agregando datos a la tabla <strong>Students<\/strong>.<\/p><p>Si continuamos, entre los corchetes, tenemos columnas de tabla espec&iacute;ficas a las que queremos agregar los valores: <strong>(name, last name, email)<\/strong>. Los datos se agregar&aacute;n en el orden especificado. Si escribi&eacute;ramos <strong>(email, last name, name)<\/strong>, los valores ser&iacute;an agregados en un orden diferente.<\/p><p>La siguiente parte es la declaraci&oacute;n de <strong>VALUES<\/strong>. Aqu&iacute; especificamos nuestros valores para las columnas previamente especificadas. De esta forma, cada columna representa un valor espec&iacute;fico. Por ejemplo, en nuestro caso ser&iacute;a as&iacute;: <strong>name = Test, lastname = Testing, email = Testing@testing.com<\/strong>.<\/p><p>Algo m&aacute;s que vale la pena destacar es que acabamos de ejecutar una <strong>consulta SQL<\/strong> (SQL query, por su nombre en ingl&eacute;s) usando c&oacute;digo PHP, las consultas SQL deben establecerse entre comillas. En nuestro ejemplo, todo lo que est&aacute; entre comillas y despu&eacute;s de <strong>$sql =<\/strong> es una consulta SQL.<\/p><p>La siguiente parte del c&oacute;digo (l&iacute;neas <strong>20 a 22<\/strong>) verifica si nuestra consulta fue exitosa:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">if (mysqli_query($conn, $sql)) {\n     echo \"New record created successfully\";\n}<\/pre><p>Simplemente muestra un mensaje de &eacute;xito si la consulta que ejecutamos fue exitosa.<\/p><p>Y la parte final (l&iacute;neas <strong>22 a 24<\/strong>) muestra un mensaje diferente en caso de que nuestra consulta no fuera exitosa:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">else {\n     echo \"Error: \" . $sql . \"&lt;br&gt;\" . mysqli_error($conn);\n}<\/pre><p>Esto nos mostrar&aacute; un mensaje de error en caso de que algo est&eacute; mal.<\/p><h3 class=\"wp-block-heading\" id=\"h-metodo-php-data-object-pdo\">M&eacute;todo <a href=\"https:\/\/www.php.net\/manual\/en\/book.pdo.php\" target=\"_blank\" rel=\"noopener\">PHP Data Object<\/a> (PDO)<\/h3><p>Al igual que en el ejemplo anterior, primero necesitamos una conexi&oacute;n a la base de datos lo cual se realiza creando un nuevo objeto PDO; <a href=\"\/es\/tutoriales\/conectar-php-mysql\/\">este tutorial<\/a> te mostrar&aacute; c&oacute;mo hacerlo. Como la conexi&oacute;n a la base de datos MySQL es un objeto PDO, debes usar varios <strong>m&eacute;todos<\/strong> PDO (cualquier funci&oacute;n que sea parte de cualquier objeto) para preparar y ejecutar consultas. Los m&eacute;todos de los objetos se llaman as&iacute;:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$the_Object-&gt;the_Method();<\/pre><p>PDO te permite <strong>preparar<\/strong> el c&oacute;digo SQL antes de que se ejecute. La consulta SQL se eval&uacute;a y se <strong>corrige<\/strong> antes de ejecutarse. Un ataque de inyecci&oacute;n SQL simplificado podr&iacute;a hacerse simplemente escribiendo c&oacute;digo SQL en un campo de un formulario. Por ejemplo:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ User writes this in the username field of a login form\njohn\"; DROP DATABASE user_table;\n\n\/\/ The final query becomes this\n\"SELECT * FROM user_table WHERE username = john\"; DROP DATABASE user_table;<\/pre><p>Como hay un c&oacute;digo SQL sint&aacute;cticamente correcto, el punto y coma hace que <strong>DROP DATABASE user_table<\/strong> sea una nueva consulta SQL, y tu tabla de usuario se borra. Las declaraciones preparadas no permiten los caracteres <strong>&laquo;<\/strong> y <strong>;<\/strong> para finalizar la consulta original y la instrucci&oacute;n maliciosa <strong>DROP DATABASE<\/strong> nunca se ejecutar&aacute;.<\/p><p><div><p class=\"important\"><strong>&iexcl;Importante! <\/strong>Siempre deber&iacute;as usar declaraciones preparadas al enviar o recibir datos de la base de datos con PDO.<\/p><\/div><br><\/p><p>Para usar declaraciones preparadas, debes escribir una nueva variable que llame al m&eacute;todo <strong>prepare()<\/strong> del objeto de la base de datos.<\/p><p>En el c&oacute;digo correcto:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;?php\n$servername = \"mysql.hostinger.com\";\n$database = \"u266072517_name\"; \n$username = \"u266072517_user\";\n$password = \"buystuffpwd\";\n$sql = \"mysql:host=$servername;dbname=$database;\";\n$dsn_Options = [PDO::ATTR_ERRMODE =&gt; PDO::ERRMODE_EXCEPTION];\n\/\/ Create a new connection to the MySQL database using PDO, $my_Db_Connection is an object\ntry { \n  $my_Db_Connection = new PDO($sql, $username, $password, $dsn_Options);\n  echo \"Connected successfully\";\n} catch (PDOException $error) {\n  echo 'Connection error: ' . $error-&gt;getMessage();\n}\n\/\/ Set the variables for the person we want to add to the database\n$first_Name = \"Test\";\n$last_Name = \"Testing\";\n$email = \"Testing@testing.com\";\n\/\/ Here we create a variable that calls the prepare() method of the database object\n\/\/ The SQL query you want to run is entered as the parameter, and placeholders are written like this :placeholder_name\n$my_Insert_Statement = $my_Db_Connection-&gt;prepare(\"INSERT INTO Students (name, lastname, email) VALUES (:first_name, :last_name, :email)\");\n\/\/ Now we tell the script which variable each placeholder actually refers to using the bindParam() method\n\/\/ First parameter is the placeholder in the statement above - the second parameter is a variable that it should refer to\n$my_Insert_Statement-&gt;bindParam(:first_name, $first_Name);\n$my_Insert_Statement-&gt;bindParam(:last_name, $last_Name);\n$my_Insert_Statement-&gt;bindParam(:email, $email);\n\/\/ Execute the query using the data we just defined\n\/\/ The execute() method returns TRUE if it is successful and FALSE if it is not, allowing you to write your own messages here\nif ($my_Insert_Statement-&gt;execute()) {\n  echo \"New record created successfully\";\n} else {\n  echo \"Unable to create record\";\n}\n\/\/ At this point you can change the data of the variables and execute again to add more data to the database\n$first_Name = \"John\";\n$last_Name = \"Smith\";\n$email = \"john.smith@email.com\";\n$my_Insert_Statement-&gt;execute();\n\/\/ Execute again now that the variables have changed\nif ($my_Insert_Statement-&gt;execute()) {\n  echo \"New record created successfully\";\n} else {\n  echo \"Unable to create record\";\n}<\/pre><p>En las l&iacute;neas <strong>28, 29<\/strong> y<strong> 30<\/strong>, usamos el m&eacute;todo <strong>bindParam()<\/strong> del objeto de la base de datos. Tambi&eacute;n est&aacute; el m&eacute;todo <strong>bindValue()<\/strong> que es muy diferente.<\/p><ul class=\"wp-block-list\">\n<li><strong>bindParam()<\/strong> &ndash; Este m&eacute;todo eval&uacute;a los datos cuando se alcanza el m&eacute;todo <strong>execute()<\/strong>. La primera vez que el script llega a un m&eacute;todo <strong>execute()<\/strong>, ve que <strong>$first_Name<\/strong> corresponde a &laquo;Test&raquo;, vincula ese valor y ejecuta la consulta. Cuando el script llega al segundo m&eacute;todo <strong>execute()<\/strong>, ve que <strong>$first_Name<\/strong> ahora corresponde a &laquo;John&raquo;, vincula ese valor y ejecuta nuevamente la consulta con los nuevos valores. Lo que es importante recordar es que definimos la consulta una vez y la reutilizamos con diferentes datos en diferentes puntos del script.<\/li>\n\n\n\n<li><strong>bindValue()<\/strong> &ndash; Este m&eacute;todo eval&uacute;a los datos tan pronto como se llega a <strong>bindValue()<\/strong>. Como el valor de <strong>$first_Name<\/strong> se defini&oacute; como &laquo;Test&raquo; cuando se lleg&oacute; a <strong>bindValue()<\/strong>, este se usar&aacute; cada vez que se llame a un m&eacute;todo <strong>execute()<\/strong> para <strong>$my_Insert_Statement<\/strong>.<\/li>\n<\/ul><p>Observa que reutilizamos la variable <strong>$first_Name<\/strong> y le damos un nuevo valor la segunda vez. Si revisas tu base de datos despu&eacute;s de ejecutar este script, tienes los dos nombres definidos, a pesar de que la variable <strong>$first_Name<\/strong> equivale a &laquo;John&raquo; al final del script. Recuerda que PHP eval&uacute;a un script completo antes de ejecutarlo.<\/p><p>Si actualizas el script para reemplazar <strong>bindParam<\/strong> con <strong>bindValue<\/strong>, insertar&aacute;s en MySQL &laquo;Test Testing&raquo; dos veces en la base de datos y John Smith ser&aacute; ignorado.<\/p><h2 class=\"wp-block-heading\" id=\"h-confirmar-que-todo-funcione-y-resolver-problemas-comunes\">Confirmar que todo funcione y resolver problemas comunes<\/h2><p>Si la consulta que ejecutamos e insertamos en la base de datos MySQL fue exitosa, veremos el siguiente mensaje:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Connect Successfully\nNew record created successfully<\/pre><h3 class=\"wp-block-heading\" id=\"h-solucion-de-errores-comunes\">Soluci&oacute;n de errores comunes<\/h3><p>Sin embargo, hay momentos en que el nuevo registro puede mostrar un error al insertar de SQL. Pero no te preocupes, hay algunas maneras en que puede solucionar estos errores de MySQL.<\/p><h4 class=\"wp-block-heading\" id=\"h-mysqli\">MySQLi<\/h4><p>Si te aparece un mensaje de error de MySQLi, puedes aplicar los siguientes m&eacute;todos para solucionarlo. Por ejemplo, si hay un error de sintaxis en tu c&oacute;digo, ver&aacute;s algo similar a esto:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Connect successfully\nError: INSERT INTO students {name, lastname, email} VALUES ('Test', 'Testing', 'Testing@testing.com')\nYou have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '{name, lastname, email} VALUES ('Test', 'Testing', 'Test@testingcom')' at line 1\"<\/pre><p>Como puedes ver, la primera parte del c&oacute;digo est&aacute; bien, la conexi&oacute;n se estableci&oacute; con &eacute;xito, pero nuestra consulta SQL se encontr&oacute; con un muro.<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\"Error: INSERT INTO Students {name, lastname, email} VALUES ('Thom', 'Vial', 'thom.v@some.com') You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '{name, lastname, email} VALUES ('Thom', 'Vial', 'thom.v@some.com')' at line 1\"<\/pre><p>Hay un error de sintaxis que, lamentablemente, provoc&oacute; el error en nuestro script. El error fue estuvo aqu&iacute;:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$sql = \"INSERT INTO Students {name, lastname, email} VALUES ('Thom', 'Vial', 'thom.v@some.com')\";<\/pre><p>Utilizamos corchetes en lugar de par&eacute;ntesis simples. Como esto no est&aacute; bien, el script arroj&oacute; un error de sintaxis.<\/p><h4 class=\"wp-block-heading\" id=\"h-pdo\">PDO<\/h4><p>En la l&iacute;nea 7 de la conexi&oacute;n PDO, el modo de error est&aacute; configurado para <strong>mostrar todas las excepciones<\/strong>. Si esto quedara fuera del script y la consulta fallara, no recibir&iacute;as ning&uacute;n mensaje de error. Con las excepciones habilitadas, se muestra el problema espec&iacute;fico.<\/p><p>Por lo general, esto solo deber&iacute;a utilizarse al desarrollar un script, ya que puedes exponer la base de datos y los nombres de tablas, cosa que quiz&aacute;s prefieras ocultar de cualquiera que intente acceder maliciosamente a tus datos. En el caso anterior donde se usaron corchetes en lugar de par&eacute;ntesis normales, el error ser&iacute;a similar a este:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; &lt;code&gt;check the manual that corresponds to your MySQL server version for the right syntax to use near '{name, lastname, email} VALUES ('Thom', 'Vial', 'thom.v@some.com')' at line 1\"&lt;\/code&gt;<\/pre><p><strong>Otros posibles problemas que puedes encontrar:<\/strong><\/p><ul class=\"wp-block-list\">\n<li>Columnas incorrectas especificadas (columnas inexistentes o un error de ortograf&iacute;a).<\/li>\n\n\n\n<li>Un tipo de valor asignado a otro tipo de columna. Por ejemplo, si tratamos de asignar un n&uacute;mero <strong>47<\/strong> a una columna de nombre (<strong>Name<\/strong>), obtendr&iacute;amos un error porque se supone que deber&iacute;a ser un valor de texto. Pero si asignamos un n&uacute;mero entre comillas, por ejemplo, <strong>&laquo;47&raquo;<\/strong>, eso funcionar&iacute;a porque nuestro n&uacute;mero se asignar&iacute;a como un texto a la columna.<\/li>\n\n\n\n<li>Intentar ingresar datos en una tabla que no existe o cometer un error ortogr&aacute;fico en la tabla.<\/li>\n<\/ul><p>Todos esos errores se pueden solucionar f&aacute;cilmente siguiendo las pautas del mensaje de error o <a href=\"https:\/\/www.hostinger.com\/tutorials\/website\/how-to-check-your-website-error-log\">verificando el error_log<\/a>.<\/p><p>Despu&eacute;s de una entrada de datos exitosa, deber&iacute;amos ver la informaci&oacute;n agregada a nuestra base de datos. Aqu&iacute; hay un ejemplo de la tabla a la que agregamos nuestros datos cuando los vemos desde <strong>phpMyAdmin<\/strong>.<\/p><div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" width=\"1024\" height=\"423\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2018\/05\/phpmqyl-add-1536x635-1.png\/public\" alt=\"insertar datos mysql\" class=\"wp-image-11292\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2018\/05\/phpmqyl-add-1536x635-1.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2018\/05\/phpmqyl-add-1536x635-1.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2018\/05\/phpmqyl-add-1536x635-1.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2018\/05\/phpmqyl-add-1536x635-1.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div><h2 class=\"wp-block-heading\" id=\"h-conclusion\">Conclusi&oacute;n<\/h2><p>En este tutorial, has aprendido a usar <strong>PHP<\/strong> para <strong>INSERTAR <\/strong>datos en una base de datos <strong>MySQL<\/strong> utilizando <strong>MySQLi<\/strong> y <strong>PDO<\/strong>. Tambi&eacute;n aprendiste a solucionar los errores de conexi&oacute;n m&aacute;s comunes. Saber c&oacute;mo usar PHP para insertar datos a una base de datos MySQL es &uacute;til ya sea que est&eacute;s <a href=\"\/es\/tutoriales\/mejores-sitios-para-aprender-a-programar-gratis\">aprendiendo a programar<\/a> o construyendo tu sitio web.<\/p><figure class=\"wp-block-image size-large\"><a href=\"\/es\/hosting-web\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" width=\"1024\" height=\"300\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2023\/02\/ES-Web-hosting_in-text-banner.png\/public\" alt=\"\" class=\"wp-image-29291\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2023\/02\/ES-Web-hosting_in-text-banner.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2023\/02\/ES-Web-hosting_in-text-banner.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2023\/02\/ES-Web-hosting_in-text-banner.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2023\/02\/ES-Web-hosting_in-text-banner.png\/w=768,fit=scale-down 768w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2023\/02\/ES-Web-hosting_in-text-banner.png\/w=1536,fit=scale-down 1536w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure><p>\n\n\n\n<div class=\"protip\">\n                    <h4 class=\"title\">Aprende m&aacute;s sobre PHP<\/h4>\n                    <p><a href=\"\/es\/tutoriales\/redireccionar-php\">C&oacute;mo hacer una redirecci&oacute;n PHP segura<\/a><\/p><p><a href=\"\/es\/tutoriales\/mejores-frameworks-php\">11 Mejores frameworks PHP<\/a><\/p>\n                <\/div>\n<\/p>\n","protected":false},"excerpt":{"rendered":"<p>En este tutorial, aprender&aacute; a INSERTAR datos en tu base de datos MySQL desde scripts PHP. Hay dos m&eacute;todos que puedes usar, MySQLi y PDO. Antes de comenzar esta gu&iacute;a sobre c&oacute;mo insertar datos PHP MySQL, necesitar&aacute;s acceso a tu panel de control de hosting. Si no est&aacute;s seguro de c&oacute;mo configurar tu conexi&oacute;n MySQL, [&#8230;]<\/p>\n<p><a class=\"btn btn-secondary understrap-read-more-link\" href=\"\/es\/tutoriales\/como-usar-php-para-insertar-datos-en-mysql\">Read More&#8230;<\/a><\/p>\n","protected":false},"author":85,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"rank_math_title":"C\u00f3mo Usar PHP para Insertar Datos en MySQL - Paso a Paso %page%","rank_math_description":"En este tutorial aprender\u00e1s c\u00f3mo usar PHP para insertar datos en MySQL, usando PDO o MySQLi. Tambi\u00e9n te decimos c\u00f3mo solucionar errores comunes.","rank_math_focus_keyword":"insertar datos en MySQL","footnotes":""},"categories":[7497],"tags":[13940],"class_list":["post-6391","post","type-post","status-publish","format-standard","hentry","category-php","tag-insertar-datos-en-mysql"],"hreflangs":[{"locale":"en-US","link":"https:\/\/www.hostinger.com\/tutorials\/how-to-use-php-to-insert-data-into-mysql-database","default":0},{"locale":"pt-BR","link":"https:\/\/www.hostinger.com\/br\/tutoriais\/como-inserir-dados-no-mysql-com-php","default":0},{"locale":"fr-FR","link":"https:\/\/www.hostinger.com\/fr\/tutoriels\/inserer-des-donnees-dans-une-table-mysql-php","default":0},{"locale":"es-ES","link":"https:\/\/www.hostinger.com\/es\/tutoriales\/como-usar-php-para-insertar-datos-en-mysql","default":0},{"locale":"id-ID","link":"https:\/\/www.hostinger.com\/id\/tutorial\/cara-input-data-ke-database-dengan-php","default":0},{"locale":"en-UK","link":"https:\/\/www.hostinger.com\/uk\/tutorials\/how-to-use-php-to-insert-data-into-mysql-database","default":0},{"locale":"en-MY","link":"https:\/\/www.hostinger.com\/my\/tutorials\/how-to-use-php-to-insert-data-into-mysql-database","default":0},{"locale":"en-PH","link":"https:\/\/www.hostinger.com\/ph\/tutorials\/how-to-use-php-to-insert-data-into-mysql-database","default":0},{"locale":"es-MX","link":"https:\/\/www.hostinger.com\/mx\/tutoriales\/como-usar-php-para-insertar-datos-en-mysql\/","default":0},{"locale":"es-CO","link":"https:\/\/www.hostinger.com\/co\/tutoriales\/como-usar-php-para-insertar-datos-en-mysql\/","default":0},{"locale":"es-AR","link":"https:\/\/www.hostinger.com\/ar\/tutoriales\/como-usar-php-para-insertar-datos-en-mysql\/","default":0},{"locale":"pt-PT","link":"https:\/\/www.hostinger.com\/pt\/tutoriais\/como-inserir-dados-no-mysql-com-php","default":0},{"locale":"en-IN","link":"https:\/\/www.hostinger.com\/in\/tutorials\/how-to-use-php-to-insert-data-into-mysql-database","default":0},{"locale":"en-CA","link":"https:\/\/www.hostinger.com\/ca\/tutorials\/how-to-use-php-to-insert-data-into-mysql-database","default":0},{"locale":"en-AU","link":"https:\/\/www.hostinger.com\/au\/tutorials\/how-to-use-php-to-insert-data-into-mysql-database","default":0},{"locale":"en-NG","link":"https:\/\/www.hostinger.com\/ng\/tutorials\/how-to-use-php-to-insert-data-into-mysql-database","default":0}],"acf":[],"_links":{"self":[{"href":"https:\/\/www.hostinger.com\/es\/tutoriales\/wp-json\/wp\/v2\/posts\/6391","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hostinger.com\/es\/tutoriales\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hostinger.com\/es\/tutoriales\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/es\/tutoriales\/wp-json\/wp\/v2\/users\/85"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/es\/tutoriales\/wp-json\/wp\/v2\/comments?post=6391"}],"version-history":[{"count":13,"href":"https:\/\/www.hostinger.com\/es\/tutoriales\/wp-json\/wp\/v2\/posts\/6391\/revisions"}],"predecessor-version":[{"id":45837,"href":"https:\/\/www.hostinger.com\/es\/tutoriales\/wp-json\/wp\/v2\/posts\/6391\/revisions\/45837"}],"wp:attachment":[{"href":"https:\/\/www.hostinger.com\/es\/tutoriales\/wp-json\/wp\/v2\/media?parent=6391"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hostinger.com\/es\/tutoriales\/wp-json\/wp\/v2\/categories?post=6391"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hostinger.com\/es\/tutoriales\/wp-json\/wp\/v2\/tags?post=6391"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}