una soporta segundo rapida por optimizar mas lentas lenta hacer cuello cuantas consultas consulta como botella agilizar php mysql timestamp

php - soporta - optimizar consultas mysql explain



Cómo insertar la marca de tiempo actual en la base de datos MySQL usando una consulta de inserción de PHP (5)

En mi base de datos MySQL, tengo una tabla con estructura

username - varchar insert_time - timestamp

Esta tabla se creó en MySQL usando la herramienta phpMyAdmin y para la columna insert_time , mencioné el valor predeterminado como 0000-00-00 00:00:00 .

Ahora el problema es que tengo que actualizar este valor predeterminado con la marca de tiempo actual más adelante, utilizando un script PHP.

Intenté hacer el siguiente código PHP:

$update_query = ''UPDATE db.tablename SET insert_time=now() ''. ''WHERE username=''.$somename;

Cuando se ejecuta el script PHP, falla y no puede insertar nada en la base de datos.

¿Qué estoy haciendo mal?


¿Qué mensaje de error está recibiendo?

Supongo que su error real es porque su variable php no está entre comillas. Prueba esto

$update_query = "UPDATE db.tablename SET insert_time=now() WHERE username=''" .$somename . "''";


Este formato se usa para obtener la marca de tiempo actual y se almacena en mysql

$date = date("Y-m-d H:i:s"); $update_query = "UPDATE db.tablename SET insert_time=".$date." WHERE username=''" .$somename . "''";


No me gusta ninguna de esas soluciones.

asi es como lo hago

$update_query = "UPDATE db.tablename SET insert_time=now() WHERE username=''" . sqlEsc($somename) . "'' ;";

Entonces uso mi propia función sqlEsc:

function sqlEsc($val) { global $mysqli; return mysqli_real_escape_string($mysqli, $val); }


Se olvidó de poner la variable en la declaración SQL sin cotizaciones.

$update_query = "UPDATE db.tablename SET insert_time=NOW() WHERE username=''" .$somename."''";


Su uso de ahora () es correcto. Sin embargo, debe utilizar un tipo de citas en toda la consulta y otro en los valores.

Puede modificar su consulta para usar comillas dobles al principio y al final, y comillas simples alrededor de $somename :

$update_query = "UPDATE db.tablename SET insert_time=now() WHERE username=''$somename''";