Я пытался произвести запрос с printf
быть выполнен на MySQL:Использование PHP Printf для создания SQL запросов
$query = printf("INSERT INTO author VALUES (null,'%s','%s','%s',null,null,null,null,null)",
$command['pseudonym'],$command['name'],$command['surname']);
$result = $connection->query($query);
Но результат эта странная ошибка:
INSERT INTO author VALUES (null,'pseudo','nome','cognome',null,null,null,null,null)
Database access failed: You have an error in your SQL syntax;
check the manual that corresponds to your MySQL server version
for the right syntax to use near '83' at line 1
Полученный запрос отлично в PhpMyadmin. Я попробовал также версию кода без printf
и он работает:
$pseudo = $command['pseudonym'];
$name = $command['name'];
$surname = $command['surname'];
$query = "INSERT INTO author VALUES (null,'$pseudo','$name','$surname',null,null,null,null,null)";
Что случилось с версией с помощью printf
?
Вы смотрите в руководстве, где вы видите это: 'PRINTF: Возвращает длину выводимого string.' Вы можете использовать Sprintf. Тем не менее, вы не только подвержены SQL-инъекциям, но и код уродливый. Вы используете PDO? –