Вставьте данные в БД MySql - PullRequest
       18

Вставьте данные в БД MySql

0 голосов
/ 14 декабря 2011

Я создаю класс, и у меня есть функция, с помощью которой я хочу вставить некоторые данные в таблицу из некоторых входных данных. Это работает, если я проверяю таблицу, но продолжаю получать сообщение об ошибке «число аргументов в prepare не соответствует номеру аргумента arg в bind_result». Также я не знаю, если мой метод правильный ..

private function insertData($foldName,$foldClass,$foldLink) {

    $sql = "INSERT INTO folders (folder_name,folder_class,folder_link) VALUES ('$foldName','$foldClass','$foldLink')";

    if($stmt = $this->connect->prepare($sql)) {
        $stmt->execute();
        $stmt->bind_result($foldName,$foldClass,$foldLink);
        $stmt->close();
        $error = false;
        $message['error'] = false;
        $message['message'] = "Data Successfuly Inserted";
        return json_encode($message);
    }
        else {
            $error = true;
            $message['error'] = true;
            $message['message'] = "Data Failed To Insert";
            return json_encode($message);
        }

}

Ответы [ 3 ]

3 голосов
/ 14 декабря 2011

Вам вообще не нужно bind_result, поскольку вы вставляете данные и не выбираете их.

Но вы должны использовать основные функции вашего подготовленного заявления.То есть: безопасная передача переменных в объект оператора вместо вставки их «сырых» значений в строку SQL:

$sql = "INSERT INTO folders (folder_name,folder_class,folder_link) VALUES (?,?,?)";
$stmt = $this->connect->prepare($sql);
$stmt->bind_param("sss", $foldName, $foldClass, $foldLink);
$stmt->execute();

(я не проверял это).

2 голосов
/ 14 декабря 2011

Посмотрите на первый пример на этой странице руководства: http://php.net/manual/en/mysqli-stmt.bind-param.php

0 голосов
/ 14 декабря 2011

Если вы очищаете данные таблицы в целом, используйте запрос truncate:

TRUNCATE TABLE `table_name`

Это сбросит auto_increment на 1, но если вы не хотите очищать всю таблицу, вы можете alter вместо этого:

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