Обновить запрос SQL - установить значения строковой переменной PHP - PullRequest
0 голосов
/ 08 апреля 2011

Это, наверное, очень тривиальный вопрос, но я некоторое время боролся с ним, а также пытался найти ответы в Интернете и все еще получать ошибки.

Попытка написать простой запрос UPDATE для формы PHP / MySql:

  $sql="UPDATE mytable SET numericValue = '".$someid."', description =  '".$sometext."' WHERE id='".$myid."' ";

Хотя все числовые значения передаются и корректно обновляются, я не могу понять описание правильно. Столбец описания - это VARCHAR, а $ sometext - строка, и я не могу ее правильно экранировать / заключить в кавычки.

Ответы [ 2 ]

1 голос
/ 08 апреля 2011

Вы должны использовать sprintf, он позволяет избежать путаницы строк, предоставляя заполнители (% d для десятичных чисел,% s для строк).См. руководство для получения дополнительной информации.

$sql= sprintf("UPDATE mytable SET numericValue = %d, description = '%s' WHERE id = %d", $someid, $sometext, $myid);

Если $ someText приходит из GET / POST / .., вы должны обернуть вокруг него mysql_real_escape_string (), чтобы предотвратить внедрение SQL (или использовать PDOподготовленные заявления).

0 голосов
/ 08 апреля 2011
$sql="UPDATE mytable SET numericValue = '$someid' , description = '$sometext' WHERE id='$myid' ";

Я думаю, вам нужно беспокоиться о инъекции SQL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...