Получение временной метки из строки mysql при создании новой записи строки

Действительно ли это?

<?php $timestamp = mysql_query("INSERT INTO column1 (entry1, entry2) VALUES ('$entry1', '$entry2') AND SELECT timestamp"); ?> 

timestamp – столбец mysql, который генерирует временную метку при создании строки.

например, мне нужно указать создание строки «timestamp»? (Я думаю, что все в порядке, настроено для самостоятельного выполнения). Можно ли выполнить эти два действия в одном запросе? если нет, как я могу это сделать? Я хочу удостовериться, что получаю временную метку, так как я использую ее позже в коде и как уникальный идентификатор, как эта запись. как я могу это получить? (предполагая, что во многих других строках записи могут быть записи, которые являются множественными и похожими).

Благодаря!

Я зависеть от того, для чего вам нужна информация. Если вам нужно, чтобы он хранился в отношении других строк / сущностей, и вы хотите, чтобы он был последовательным, я бы сохранил дату в PHP (возможно один раз для каждого запроса в веб-приложении), а затем использовать его во всем, например

 $currentTimestamp = time(); $timestamp = mysql_query("INSERT INTO column1 (entry1, entry2, timestamp_col) VALUES ('$entry1', '$entry2', $currentTimestamp); 

Таким образом, везде, где вы используете временную метку, она будет последовательной. Ваш запрос не должен забирать секунды, чтобы временная метка менялась внутри него.

Даже если вы не храните его ни в чем другом, вы все равно можете использовать этот метод, если вам нужно получить эту информацию, так как единственным способом является два запроса, и это, скорее всего, будет более эффективным.

Это не означает, что никогда не имеет смысла автоматически заполнять поле даты MySQL, так как вы просто регистрируете эту информацию для получения позже, тогда, конечно, имеет смысл сделать это в MySQL.

Это недействительный оператор mysql. Вместо этого вы можете использовать функцию PHP.

 $sql = "INSERT INTO column1 (entry1, entry2) VALUES ('$entry1', '$entry2')"; $timestamp = mysql_query($sql) ? time() : null; 

Нет, это не допустимый синтаксис.

Один из вариантов – назначить now () переменной и использовать ее в столбце timestamp вместо автоматически генерируемого значения.

 set @now = now(); insert into your_table (timestamp_column) values (@now); select @now(); 

Если вы хотите получить значение timestamp точно в ячейке метки времени, вам нужно получить идентификатор вставки, а затем использовать этот последний идентификатор вставки, чтобы получить отметку времени для этого идентификатора. Скажем,

 $query = mysql_query('INSERT INTO my_table("username","password") VALUES("falcon","test") '); $last_id = mysql_insert_id($query); // This gets your id of the row inserted by $query $timstamp = mysql_query('SELECT timestamp FROM my_table where id = "'.$last_id.'"')