Insert data into MySql DB

≡放荡痞女 提交于 2019-12-24 19:04:50

问题


I'm creating a class and I have a function with which I want to insert some data into an table from some inputs. It works if I check the table but I keep getting the error "number of arguments in prepare doesn't match the no of arg in bind_result". Also I don't know if my method is correct ..

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);
        }

}

回答1:


You don't need bind_result at all as you are inserting data and not selecting any.

But you should use the core features of your prepared statement. That is: safely passing the variables to the statement object instead of inserting their "raw" values into the SQL string:

$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();

(I have not tested it.)




回答2:


Look at the first example on this manual page: http://php.net/manual/en/mysqli-stmt.bind-param.php




回答3:


If you are emptying the table's data as a whole, use the truncate query:

TRUNCATE TABLE `table_name`

This would reset the auto_increment to 1, but if you don't want to empty the whole table you can alter it instead:

ALTER TABLE `table_name` auto_increment = 1


来源:https://stackoverflow.com/questions/8501651/insert-data-into-mysql-db

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!