我正在创建一个类,并且我有一个函数,通过它我想从一些输入中将一些数据插入到表中。如果我检查了表,但是一直收到错误消息"number of arguments in prepare in match the no of arg in 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);
}
}发布于 2011-12-14 16:56:00
您根本不需要bind_result,因为您正在插入数据,并且没有选择任何数据。
但您应该使用已准备好的语句的核心功能。也就是说:安全地将变量传递给statement对象,而不是将它们的“原始”值插入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();(我还没有测试过它。)
https://stackoverflow.com/questions/8501651
复制相似问题