Я пытаюсь обновить свои строки в БД, не удаляя/создавая новые все время. В настоящее время моя БД создает новые записи каждый раз, когда я запускаю этот блок кода. Вместо того, чтобы спамить мою БД, я просто хочу изменить некоторые из значений.PHP/MySQL PDO/строки обновления
<?php
try {
$conn = new PDO("mysql:host=localhost;port=3306;dbname=dbname", Username, password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(PDOException $e){
echo "Connection failed: " . $e->getMessage();
}
if(isset($_POST['mUsername']))
{
$mUsername = urldecode($_POST['mUsername']);
$mEvent = urldecode($_POST['mEvent']);
$mChat = urldecode($_POST['mChat']);
$mlongitude = urldecode($_POST['mlongitude']);
$mlatitude = urldecode($_POST['mlatitude']);
$sqlUPDATE = "UPDATE users
SET lastEvent=:lastEvent, lastChat=:lastChat,
lastLong=:lastLong, lastLatt=:lastLatt
WHERE name=:name";
$stmt = $conn->prepare($sqlUPDATE);
$stmt->bindParam(':lastEvent', $mEvent);
$stmt->bindParam(':lastChat', $mChat);
$stmt->bindParam(':lastLong', $mlongitude);
$stmt->bindParam(':lastLatt', $mlatitude);
$stmt->bindParam(':name', $mUsername);
$stmt->execute();
}
echo "successfully updated";
?>
Мое предположение - моя последняя строка, область результатов $. Я считаю, что это просто обработка этой новой записи вместо обновления. Как мне просто заменить значения? некоторые значения не изменятся, например, имя пользователя, а иногда и долгота/широта не будут изменены. Должен ли это быть отдельный запрос, должен ли я разделить это на два сценария? Или я могу просто ввести пустое, нулевое значение? Или это приведет к перезаписи последних координат ACTUAL, оставив мне нулевые значения? Поиск любой помощи или руководств или учебников. Спасибо всем заранее.
я соблазн сказать RTM! Вы готовите запрос, который не имеет ничего подготовленного, то есть параметры '' '' 'или' names' – RiggsFolly
Извините, я очень новичок в MySQL \ pdo, и я взял свой оригинальный (вставляемый) код и попытался его изменить, чтобы обновить его. – Bahamit
You может просто удалить 'prepare' и' execute' и заменить их '-> query' [Но опять же руководство - ваш друг.] (http://php.net/manual/en/book.pdo.php) его в многие языки – RiggsFolly