Запрос INSERT не проходит в базу
$cf = array('db'=>array('host'=>'127.0.0.1','database'=>'database','user'=>'root','password'=>''));
try {
$host = $cf['db']['host'];
$db = $cf['db']['database'];
$user = $cf['db']['user'];
$pass = $cf['db']['password'];
$dbn = new PDO("mysql:host=$host;dbname=$db", $user, $pass);
} catch (PDOException $e) {
print "Error!: " . $e->getMessage();
die();
}
$add = $dbn->prepare("INSERT INTO `ep_profiles` (`login`,`password`,`email`) VALUES (?,?,?)");
$add->execute(array($_GET['login'],crypt($_GET['password'], '$5$rounds=5000$usesomesillystringforsalt$'),$_GET['email']));
Итак, проблема в следующем: запросы INSERT не проходят в базу, хотя допустим SELECT вполне себе работает. Параметры подключения в норме, необходимые права доступа есть.
Ответы (2 шт):
Автор решения: Алексей Шиманский
→ Ссылка
Синтаксис INSERT таков:
INSERT INTO tbl_name (column1, column2) VALUES(value1, value2);
У вас же он от UPDATE
Автор решения: Fire Nick
→ Ссылка
Смотрите в чем проблема: необходимо правильно составить подключение, причем так, чтобы ошибки в случае чего выводились, итак, как это сделать?
try {
$host = $cf['db']['host'];
$db = $cf['db']['database'];
$user = $cf['db']['user'];
$pass = $cf['db']['password'];
$options = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false,
];
$dbn = new PDO("mysql:host=$host;dbname=$db;charset=utf8mb4", $user, $pass, $options);
} catch (PDOException $e) {
print "Error!: " . $e->getMessage();
die();
}
Нас интересует только $options, который мы так же добавляем как параметр подключения.