Исходные данные.
Имеется БД (InnoDB, utf-8).
В ней есть таблица со следующими полями:
- domain_id(bigint, unsigned, auto_increment, primary)
- user_id (bigint, UNSIGNED, index)
- domain (varchar(250), utf-8)
- unique_number (varchar(250), utf-8)
- unique_number_send (tinyint, unsigned)
- domain_analysed (tinyint, unsigned)
- report_send (tinyint, unsigned)
Код подключения к БД:
PHP:
скопировать код в буфер обмена
$dsn = "mysql:host=".$host.";dbname=".$dataBaseName.";"; $pdo = new PDO($dsn, $user, $password); $pdo->exec("set names utf8"); $pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, TRUE);
Код запроса:
PHP:
скопировать код в буфер обмена
$query = 'INSERT INTO domain values (?, ?, ?, ?, ?, ?, ?)'; $prepareQuery = $pdoObject->prepare($query); $prepareQuery->execute(array(NULL, $userId,"$domainForInsert", "$uniqueSiteNumber", 0 , 0 , 0 ));
Типы переменных в execute:
$userId - integer
$domainForInsert - string
$uniqueSiteNumber - string
Проблема
Если сделать запрос с исходными данными, например:
Вставка данных в БД проходит без проблем.
Если сразу после этого сделать еще один INSERT с входными данными:
Вставка в БД не происходит.
При этом, если указать иное значение для $domainForInsert, вставка данных в БД проходит без проблем.
Проверял как на локальном серевере (Open Server), так и на vds сервере. Проблема есть и там и там.
Ошибок ни каких не выдается (при проставленных значениях вывода ошибок в момент подключения к БД + try/catch).
Типы данных, которые будут вставляться, перед вставкой проверяются и в итоге к моменту вставки в БД имею указанные типы.
С чем может быть связана указанная проблема и как ее исправить?
Заранее благодарю за помощь.(Отредактировано автором: 11 Февраля, 2016 - 16:02:30)
|