elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Problemas al insertar datos con php en mysql
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problemas al insertar datos con php en mysql  (Leído 3,532 veces)
Ali Baba


Desconectado Desconectado

Mensajes: 310


Ver Perfil WWW
Problemas al insertar datos con php en mysql
« en: 30 Junio 2018, 02:44 am »

Estoy intentando insertar el titulo de una pagina en una base de datos que un webcrawler me extrae. Este es el codigo php del webcrawler y me funciona perfectamente:

Código
  1. <?php
  2.  
  3.  $dbHost = 'localhost';
  4.  $dbName = 'invento';
  5.  $dbUser = 'root';
  6.  $dbPass = '';
  7.  
  8. try {
  9.  
  10.  $pdo = new PDO("mysql:host=$dbHost;dbname=$dbName","$dbUser", "$dbPass");
  11.  $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  12.  
  13. } catch(Exception $e) {
  14.  
  15.  echo $e->getMessage();
  16. }
  17.  
  18.  
  19. $html = file_get_contents('https://www.google.com');
  20. preg_match('/<title>(.*)<\/title>/i', $html, $title);
  21.  
  22. $title_out = $title[1];
  23.  
  24. $sql = "INSERT INTO prueba('title') VALUES ($title_out)";
  25.  
  26.  $query = $pdo->prepare($sql);
  27.  
  28.  $result = $query->execute([
  29.    'title' => $title_out
  30.  ]);
  31. }
  32.  

pero en la parte de insertar en la tabla prueba el valor me sale este error que dice ser un error de sintaxis en sql, quisiera saber que error estoy cometiendo:

Citar
Fatal error: Uncaught PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ''title') VALUES (Google)' at line 1 in C:\xampp\htdocs\webcrawler\php-web-crawler\index.php:29 Stack trace: #0 C:\xampp\htdocs\webcrawler\php-web-crawler\index.php(29): PDOStatement->execute(Array) #1 {main} thrown in C:\xampp\htdocs\webcrawler\php-web-crawler\index.php on line 29

la linea 29 hace referencia al array que se pasa al execute()


En línea

Necronomicon.93

Desconectado Desconectado

Mensajes: 7


Ver Perfil
Re: Problemas al insertar datos con php en mysql
« Respuesta #1 en: 30 Junio 2018, 03:59 am »

hola magodesian, espero poder ayudarte.. creo que tenes que poner comillas a
( ' title_out ' )";

por lo que veo dice que es un error de sintaxis en sql.. proba si es eso..no estoy del todo seguro..proba con las comillas , creo que va asi..sino proba de ponerlas de esta forma

$sql = "INSERT INTO prueba('title') VALUES (' "$title_out ' ")";

escapando las comillas.


En línea

Ali Baba


Desconectado Desconectado

Mensajes: 310


Ver Perfil WWW
Re: Problemas al insertar datos con php en mysql
« Respuesta #2 en: 30 Junio 2018, 04:19 am »

hola magodesian, espero poder ayudarte.. creo que tenes que poner comillas a
( ' title_out ' )";

por lo que veo dice que es un error de sintaxis en sql.. proba si es eso..no estoy del todo seguro..proba con las comillas , creo que va asi..sino proba de ponerlas de esta forma

$sql = "INSERT INTO prueba('title') VALUES (' "$title_out ' ")";

escapando las comillas.

Con esa sintaxis me da este error:

Citar
Parse error: syntax error, unexpected '$title_out' (T_VARIABLE) in C:\xampp\htdocs\webcrawler\php-web-crawler\index.php on line 24
En línea

Necronomicon.93

Desconectado Desconectado

Mensajes: 7


Ver Perfil
Re: Problemas al insertar datos con php en mysql
« Respuesta #3 en: 30 Junio 2018, 14:13 pm »

Asi con comillas simples ya probaste no tambien?

$sql = "INSERT INTO prueba('title') VALUES ('  $title_out ')";

o asi $sql = "INSERT INTO prueba('title') VALUES (' . title_out . ')";

no puedo ayudarte mucho mas..no se me ocurre nada.
En línea

#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 5.855



Ver Perfil WWW
Re: Problemas al insertar datos con php en mysql
« Respuesta #4 en: 2 Julio 2018, 00:40 am »

Creo que te has liado con como funcionan las queries preparadas.

1. El problema que te tira, es que esas poniendo prueba('title'), cuando indicas que solo quieres afectar a X columnas de esa forma, no puedes poner los nombres entre comillas, ha de ir a pelo.

2. Si estas preparando una sentencia, no pases el valor antes de tiempo. Literalmente estas pasando el valor que obtienes en la propia sentencia, antes de prepararla. Y eso es no hacer nada. Además lo invocas de una forma errónea.

Código
  1. $sql = "INSERT INTO prueba(title) VALUES (:title)";
  2. $query = $pdo->prepare($sql);
  3.  
  4. $result = $query->execute([
  5.    ':title' => $title_out
  6. ]);

Saludos
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problema al insertar datos en MySQL
PHP
darso 2 3,650 Último mensaje 6 Octubre 2007, 23:50 pm
por darso
PHP - Insertar formulario en base de datos MySQL
PHP
javierete 1 6,794 Último mensaje 7 Febrero 2011, 21:35 pm
por Nakp
Insertar datos php mysql
Desarrollo Web
aprendiz_web 1 2,344 Último mensaje 29 Noviembre 2013, 04:22 am
por :ohk<any>
Problema al insertar datos a MySQL desde C#
.NET (C#, VB.NET, ASP)
amjrey617 2 2,580 Último mensaje 6 Octubre 2014, 21:38 pm
por .::IT::.
Insertar datos mysql
.NET (C#, VB.NET, ASP)
aspiazu 0 1,935 Último mensaje 30 Abril 2017, 19:43 pm
por aspiazu
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines