Хорошо. Если будний день принимает строковые значения, то значение должно быть окружено кавычками, то есть:
$sql="UPDATE filename SET weekday = '" . $_GET['wkd'] . "' WHERE id = 2";
Это также эквивалентно:
$sql="UPDATE filename SET weekday = '{$_GET['wkd']}' WHERE id = 2";
Первые сцепляет строки вместе, второй просто вставляет переменную непосредственно в строку.
Для $_GET['wkd'] = "tuesday";
, боты из тех вывода запросов этого:
UPDATE filename SET weekday = 'tuesday' WHERE id = 2
Если будний день принимает только числовые значения, то нет необходимости, чтобы окружить значение в кавычках (но вы все еще можете):
$sql="UPDATE filename SET weekday = " . $_GET['wkd'] . " WHERE id = 2";
который, как и первое, что эквивалентно:
$sql="UPDATE filename SET weekday = {$_GET['wkd']} WHERE id = 2";
Что для $_GET['wkd'] = 1
, будет иметь и вывод запросов:
UPDATE filename SET weekday = 1 WHERE id = 2
точка не - нет один правильный синтаксис, они все работают.
Однако то, что вы действительно хотите делать это с помощью PDO или MySQLi с подготовленными операторами и параметров связывания, например, так:
$pdo = new PDO('... connection string ... ');
$stmt = $pdo->prepare("UPDATE filename SET weekday = ? WHERE id = ?");
$stmt->execute(array($_GET['wkd'], 2));
Это связывают значение $_GET['wkd']
к первому ?
в подготовленном заявлении , и буква 2
на значение второго символа??.Если вы будете использовать много вопросительных знаков, или теряя порядка, вы можете также использовать именованные заполнители, как это:
$pdo = new PDO('... connection string ... ');
$stmt = $pdo->prepare("UPDATE filename SET weekday = :weekday WHERE id = :id");
$stmt->execute(array(
'weekday' => $_GET['wkd'],
'id' => 2
));
В этом примере я назвал заполнители так же, как поля - это ISN «т необходимо, но это, очевидно, более удобным для чтения, чем обозначения заполнители :asdfasdf
и :lmnop
(в этом случае массив быть передан функции execute
будет ('asdfasdf' => $_GET['wkd'], 'id' => 2)
Зачем использовать связывание параметра? его лучшая защита против SQL Injection
Просто Замечание: это проблемы синтаксиса php, а не MySQL. –
Ни один из них не является правильным. Вы не должны создавать свои запросы с помощью конкатенации, и вы не должны использовать несанкционированные данные. –
Я предлагаю вам изучить PHP-PDO для операций с CRUD-базой данных ... –