2016-06-17 3 views
0

Пожалуйста, как это исправить. Я изначально использую mysql, с которым у меня возникают проблемы. Теперь я начал изучать mysqli. Сейчас я не знаю всех подробностей, но мне нужно сделать этот скрипт работать и защищаться. В настоящее время у меня есть это:

Parse error: syntax error, unexpected '$_POST' (T_VARIABLE) in C:\xampp\htdocs\yomi\admin\update.php on line 27

Запрос:

CREATE TABLE IF NOT EXISTS `news` (
    `id` int(10) NOT NULL, 
    `title` varchar(225) NOT NULL, 
    `brief` varchar(500) NOT NULL, 
    `contents` varchar(2000) NOT NULL, 
    `author` varchar(2000) NOT NULL 
) ENGINE=InnoDB DEFAULT CHARSET=latin1; 

PHP:

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

// Create connection 
$conn = new mysqli($servername, $username, $password, $dbname); 

// Check connection 
if ($conn->connect_error) { 
    die("Connection failed: " . $conn->connect_error); 
} 

// prepare and bind 
$stmt = $mysqli->prepare("UPDATE news SET title = ?, 
    brief = ?, 
    contents = ?, 
    author = ? 
    WHERE id = 1"); 

// set parameters and execute 
$stmt->bind_param("ssssi", $_POST['title'], 
$_POST['brief'], 
$_POST['contents'], 
$_POST['author'], 
$_POST['id']); 
$stmt->execute(); 
echo "New records updated successfully"; 
$conn->close(); 
?> 
+4

Отсутствует '' '' '_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ –

+0

добавить запятую после $ _POST ['author'] как $ _POST ['author'], –

+0

должно быть как $ stmt-> bind_param (" ssssi ", $ _POST ['title'], $ _POST ['краткое'], $ _POST ['contents'], $ _POST ['author'], $ _POST ['id']); –

ответ

1

вам не хватает запятой после $ _POST [ 'автор']

$stmt->bind_param("ssssi", $_POST['title'], 
    $_POST['brief'], 
    $_POST['contents'], 
    $_POST['author'], 
    $_POST['id']); 
    $stmt->execute(); 
    echo "New records updated successfully"; 
    $conn->close(); 
    ?> 
+0

Большое спасибо за ваш ответ. Мне все еще нужна помощь в этом, так как я все еще получаю сообщение об ошибке после моей опечатки, которую вы только что указали. // подготовьте и свяжите $ stmt = $ mysqli-> prepare ("UPDATE news SET title =?, brief =?, contents = ?, author =? ГДЕ id = 3 "); // набор параметров и выполнить $ stmt-> bind_param ("камеру SSSSI", $ _POST [ 'название'], $ _POST [ 'краткое'], $ _POST [ 'содержание'], $ _POST [» автор '], $ _POST [' 3 ']); $ stmt-> execute(); echo «Новые записи обновлены успешно»; $ conn-> close(); – Yomi

+0

это поможет, если вы расскажете нам больше об этой новой ошибке. Это может быть связано с тем, что в подготовленном заявлении имеется только 4 заполнителя, и вы хотите вставить 5 переменных (ваш идентификатор жестко запрограммирован как 1 (3 в последнем комментарии), и все же вы хотите связать $ _POST ['id'] в инструкции что-то не так там, – Cashbee

+0

Еще раз спасибо. Примечание: Неопределенная переменная: mysqli в C: \ xampp \ htdocs \ yomi \ admin \ update.php в строке 16. Я думаю, моя проблема: «id Проблема заключается в том, что я не знаю, как это сделать. Неустранимая ошибка: вызовите функцию-член prepare() для не-объекта в C: \ xampp \ htdocs \ yomi \ admin \ update.php в строке 16. Связанный с кодом те, что были выше. Ваша помощь действительно оценена – Yomi

0

Вам не хватает запятой после $_POST['author'], где вы привязываете свои параметры.

Смежные вопросы