Top.Mail.Ru
Ответы
Аватар пользователя
5лет
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+4

Ошибка с запросом PHP

Parse error: syntax error, unexpected 'New' (T_NEW) in E:\Programs\XAMPP\htdocs\dashboard\push.php on line 19

<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "db_task1";

if ( isset($_POST['myPush'] )) {
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);
$title = $_GET(['title']);
$about = $_GET(['about']);
$workTitle = trim($title);
$workAbout = trim($about);

$sql = "INSERT INTO article (title, about)
[!] VALUES ".$workTitle.", ".$workAbout." ";
// use exec() because no results are returned
$conn->exec($sql);
echo "New record created successfully";
}
catch(PDOException $e) {
echo $sql . "
" . $e->getMessage();
}
$conn = null;
}
?>

По дате
По рейтингу
Аватар пользователя
Новичок
5лет

1. Ты уж разберись, $_POST у тебя или $_GET.
2. Напахал с синтаксисом SQL-запроса: перечисление значений после VALUES должно быть в круглых скобках.
3. НЕ НАДО впихивать значения в текст SQL-запроса - это любимая хакерами дыра в безопасности: https://www.php.net/manual/ru/security.database.sql-injection.php
4. А сообщение об ошибке означает, что где-то ВЫШЕ 19-й строки есть ошибка в PHP-коде.

Нормальный запрос выглядит так:

$sql = $conn->prepare('INSERT INTO article (title, about) VALUES (:title, :about)');
$sql->execute(['title' => trim($_POST['title']), 'about' => trim($_POST['about'])]);

Аватар пользователя
Мастер
5лет

Спасибо за все файлы с кодом (нет)