У меня есть небольшая проблема с моим Mysqli Insert здесь. Я вставил блок try вокруг вставки, чтобы перехватить возможные ошибки, я получил уведомление о том, что это сработало, но данные не были вставлены.
Вот код:
$mysqli = new mysqli("localhost", "yourusername", "somepasswdhere", "users");
if ($mysqli->connect_errno) {
echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}//formular set ?
if(isset($_POST['submit'])) {
echo $_POST['username'];
//bind post variables on local vars.
$username = $_POST['username'];
$fname = $_POST['fname'];
$lname = $_POST['lname'];
$email = $_POST['email'];
$password = $_POST['password'];
$cpassword = $_POST['cpassword'];
// Heres some crap but thats not that problem so im getting
// right into the next
// maybe problem part
try{
$mysqli->query("INSERT INTO `users` ($username) VALUES ('$username')");
$mysqli->commit();
echo "works";
} catch(Exception $e) {
echo $e->getMessage(), "\n";
}
Чтобы быть уверенным, что мой код будет зафиксирован, я поставил $mysqli->commit();
Можете ли вы попробовать следующее для проверки ошибок:
$success = $mysqli->query(<YOUR SQL QUERY>);
if (!$success) {
print_r($mysqli->error);
}
Кроме того, в вашем запросе почему у вас есть первое $ username? Я считаю, что это должно быть имя вашей колонки в следующем формате:
INSERT INTO `users` (<col name>) VALUES (<value>);
Ваше имя столбца не должно содержать знак «$». Вместо этого используйте это.
$mysqli->query("INSERT INTO `users` (username) VALUES ('$username')");
Надеюсь, это поможет вам.