Добавление записи в связанные таблицы MySQL

Дана База данных, состоящая из двух несвязанных таблиц "users" и "textlog". В users добавляются пользователи, а в textlog записи, которые они делают. Все работает корректно. Есть задача - получать в таблице textlog пользователя, добавившего запись. Для этого в таблице textlog создается поле user_id, которое связывается с полем id таблицы users.

И всё перестает работать. Данные из поля ввода в таблицу textlog не попадают.

Предполагаю ошибку запроса, но как ее подправить решить не могу.

Как решить эту проблему?

Вот функция добавления в БД на php:

function textlog($connect, $chat_id, $text) {

    if ($chat_id = '')
        return false;
    $t = "INSERT INTO textlog (chat_id, phone) VALUES ('%s', '%s')";
    $query = sprintf($t, mysqli_real_escape_string($connect, $chat_id),
//            mysqli_real_escape_string($connect, $text));
        mysqli_real_escape_string($connect, substr($text, 1)));
    $result = mysqli_query($connect, $query);

    if (!$result)
        die(mysqli_error($connect));
    return true;

}

Ответы (1 шт):

Автор решения: Егор Банин

Вам надо добавить значение для user_id.

Если вы ещё плохо знаете SQL, то проверяйте свои запросы через клиент базы данных (если умеете через консольный, через IDE или adminer, phpmyadmin). Подставьте в запрос подходящие данные и выполните его без вашего php-кода. Если запрос завершился без ошибок, то можете добавить его в свой код, подставив в него переменные (например через sprintf, как вы это делаете). Если возникнет ошибка, то переведите её и постарайтесь понять в чём проблема.

insert into `textlog` (
    `chat_id`,
    `phone`,
    `user_id`
) values (
    123,
    '1234567890',
    456
)
→ Ссылка