Как записать значение переменой в строку по id?

259
22 сентября 2021, 22:50
 $servername = "localhost";
    $username = "root";
    $password = "";
    $dbname = "trainer";
    try {
        $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
        // set the PDO error mode to exception
        $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        $sql = "INSERT INTO content (name, text)
            VALUES ('John', 'Doe')";
        // use exec() because no results are returned
        $conn->exec($sql);
        echo "New record created successfully";
    }
    catch(PDOException $e)
    {
        echo $sql . "<br>" . $e->getMessage();
    }
    $conn = null;

Мне нужно чтобы данные обновлялись в строке, доступ к которой мы получали за id, то есть когда я изменю в параметрах john на другое имя, то нужно чтобы в БД не создавалась новая строка (так как сейчас происходит), а обновлялась старая по id

Answer 1

Накидал простой пример из вашего:

$servername = "localhost";
$username = "root";
$password = "";
$dbname = "trainer";
$trainerId = isset($_GET['trainerId']) ? $_GET['trainerId'] : null;
try {
    $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
    // set the PDO error mode to exception
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $text = null;
    if ($trainerId) {
        $text = 'item with ID ' . $trainerId . ' has been updated';
        $sql = "UPDATE trainer SET name = 'John', text = 'Doe' WHERE id = {$trainerId}";
    } else {
        $text = 'New record created successfully';
        $sql = "INSERT INTO trainer (name, text) VALUES ('John', 'Doe')";
    }
    // use exec() because no results are returned
    $conn->exec($sql);
    echo $text;
}
catch(PDOException $e)
{
    echo $sql . "<br>" . $e->getMessage();
}
$conn = null;
READ ALSO
Правильное использование констант

Правильное использование констант

Я совсем недавно начал работать с ООП, и для определенных целей мне нужно было сделать собственный класс, который, к слову, отлично работает

80
Вывод значения атрибута на главной сайта woocommerce

Вывод значения атрибута на главной сайта woocommerce

Здраствуйте, пытаюсь вывести все значения атрибута на главной страницеВ идеале чтобы это было в инпуте и когда пользователь вводит начало...

72
Проверка двух значений в одной таблице

Проверка двух значений в одной таблице

Есть таблица datingВ ней такие столбцы: id, user_id, user_id_from, status

97
Проблемы с кодировкой в ответе геокодера

Проблемы с кодировкой в ответе геокодера

Пытаюсь получить координаты по названию объекта в формате JSON, но в ответе геокодера вместо названия объекта набор символовРаньше код работал,...

73