Jim Clinton Ответов: 2

Ошибка синтаксического анализа: синтаксическая ошибка, неожиданный 'mysqli_query' (T_STRING)


У меня есть ошибка говорит он
Ошибка синтаксического анализа: синтаксическая ошибка, неожиданный 'mysqli_query' (T_STRING)



Что я уже пробовал:

dbconnect.php
<?php



$host = "localhost";

$username = "root";

$password = "";

$db_name = "dbmargs"; 



$mysqli = new mysqli($host, $username, $password, $db_name);



if(mysqli_connect_errno()) {

echo "Error: Could not connect to database.";

exit;

}

?>


delete.php
<?php
include 'dbconnect.php'



mysqli_query("DELETE FROM tblregister WHERE id = '$id'")
or die(mysqli_error());      

?>

Richard MacCutchan

Сообщение подразумевает, что с включенным файлом что-то не так. Я думаю,что вам нужна точка с запятой после имени файла include.

Jim Clinton

О, я забыл точку с запятой, но она все еще не работает, она говорит

Предупреждение: mysqli_query () ожидает как минимум 2 параметра,


Обратите внимание: неопределенная переменная: id in C:\xampp\htdocs\cwang\admin\delete.php на линии 6

Предупреждение: mysqli_query () ожидает как минимум 2 параметра, 1 из которых задан в C:\xampp\htdocs\cwang\admin\delete.php на линии 6

Предупреждение: mysqli_error () ожидает ровно 1 параметр, 0 задан в C:\xampp\htdocs\cwang\admin\delete.php на линии 7

2 Ответов

Рейтинг:
2

Jochen Arndt

Просто прочитайте документацию по функциям РНР: в mysqli::запрос - руководство по эксплуатации[^]:

mixed mysqli_query ( mysqli $link , string $query [, int $resultmode = MYSQLI_STORE_RESULT ])

Функции требуют двух или трех параметров:
Цитата:
ссылка

Только процедурный стиль: идентификатор ссылки, возвращаемый mysqli_connect() или mysqli_init()

запрос

Строка запроса.

Так что вы должны использовать [правка: добавлена Исправлена ошибка, которая вызывает также отсутствует параметр]
mysqli_query($mysqli, "DELETE FROM tblregister WHERE id = '$id'") or die(mysqli_error($mysqli));
ОПЕРАЦИОННАЯ
$mysqli->query("DELETE FROM tblregister WHERE id = '$id'") or die($mysqli->error);


Еще раз:
Я предлагаю не смешивать процедурный и объектный стили. Выберите один и используйте только его. Это поможет избежать подобных ошибок.
Смотреть также PHP: двойной процедурный и объектно-ориентированный интерфейс-руководство пользователя[^]:
Цитата:
Переключаться между стилями можно в любое время. Смешивание обоих стилей не рекомендуется по соображениям ясности кода и стиля кодирования.


Jim Clinton

Примечание: неопределенная переменная: id

Jochen Arndt

Да. Другая ошибка. Переменная $id не определена.

Я сосредоточился на указанной ошибке (другие ошибки были добавлены вами, когда я писал свое решение):
"Ошибка синтаксического анализа: синтаксическая ошибка, неожиданный 'mysqli_query' (T_STRING)"

Те средства:
Парсер нашел строку, но ожидает чего-то другого (здесь объект mysqli).

Рейтинг:
0

Richard MacCutchan

Видеть PHP 5 включает и требует[^].