Наличие проблемы, когда PDO дает мне исключение, указав, что параметр не определен. Тем не менее, два массива, которые я предоставляю ему, имеют определенную длину и ключи, поэтому что не так?Ошибка SQLSTATE [HY093], но массивы имеют одинаковую длину
Ниже вы можете увидеть функцию, затем запрос на обновление, а затем массив, который отправляется. 52 - длина каждой части, а ниже - текст исключения.
public function query($sql,$data,$read) {
if (!($query = $this->connection->prepare($sql))) { exception(implode(' ',$query->errorInfo()),intval($query->errorCode())); }
if (!($query->execute($data))) { exception(implode(' ',$query->errorInfo()),intval($query->errorCode())); }
if ($read) { $result = $query->fetchAll(PDO::FETCH_ASSOC); $this->count_reads++; } else { $result = $query->rowCount(); $this->count_writes++; }
$query = null; return $result;
}
UPDATE objects_servers SET id
= :id
, info__enabled
= :info__enabled
, info__version
= :info__version
, info__title
= :info__title
, info__color
= :info__color
, info__contact
= :info__contact
, info__chunksize
= :info__chunksize
, info__downloadwait
= :info__downloadwait
, info__crypto__ciphers
= :info__crypto__ciphers
, info__crypto__salt-length
= :info__crypto__salt-length
, info__crypto__pbkdf2-algorithm
= :info__crypto__pbkdf2-algorithm
, info__crypto__pbkdf2-iterations
= :info__crypto__pbkdf2-iterations
, info__crypto__chunk-size
= :info__crypto__chunk-size
, info__email__hostname
= :info__email__hostname
, info__email__smtp-auth
= :info__email__smtp-auth
, info__email__auth-password
= :info__email__auth-password
, info__email__auth-username
= :info__email__auth-username
, info__email__from-address
= :info__email__from-address
, info__email__from-name
= :info__email__from-name
, info__email__port
= :info__email__port
, info__email__smtp-secure
= :info__email__smtp-secure
, info__email__bcc-address
= :info__email__bcc-address
, features__users__download-pages
= :features__users__download-pages
, features__users__file-encrypt
= :features__users__file-encrypt
, features__users__admin
= :features__users__admin
, features__server__email-validation
= :features__server__email-validation
, features__server__softlimit
= :features__server__softlimit
, features__server__publiclimit
= :features__server__publiclimit
, features__server__hourly-statistics
= :features__server__hourly-statistics
, features__server__actionlog
= :features__server__actionlog
, features__server__limit-alerts
= :features__server__limit-alerts
, features__server__sequential-contentfill
= :features__server__sequential-contentfill
, features__server__outgoing-email
= :features__server__outgoing-email
, features__server__multiple-accounts
= :features__server__multiple-accounts
, statistics__timed__#start
= :statistics__timed__#start
, statistics__timed__storage
+ = :statistics__timed__storage
, statistics__timed__bandwidth
+ = :statistics__timed__bandwidth
, statistics__timed__downloads
+ = :statistics__timed__downloads
, statistics__forever__storage
+ = :statistics__forever__storage
, statistics__forever__bandwidth
+ = :statistics__forever__bandwidth
, statistics__forever__downloads
+ = :statistics__forever__downloads
, limits__server__forever__storage
= :limits__server__forever__storage
, limits__server__timed__bandwidth
= :limits__server__timed__bandwidth
, limits__server__timed__downloads
= :limits__server__timed__downloads
, limits__server__timed-expire
= :limits__server__timed-expire
, limits__server__public-filecount
= :limits__server__public-filecount
, limits__server__public-filesize
= :limits__server__public-filesize
, limits__users__filesize
= :limits__users__filesize
, limits__users__filecount
= :limits__users__filecount
, limits__users__forever__storage
= :limits__users__forever__storage
, limits__users__timed__bandwidth
= :limits__users__timed__bandwidth
, limits__users__timed__downloads
= :limits__users__timed__downloads
ГДЕ id
= 'DjvMb938gkH867d3';
{"id": "DjvMb938gkH867d3", "info__enabled": "1", "info__version": "0.0.1" , "info__title": "Развитие", "info__color": "# 007127", "info__contact": "yeeeup", "info__chunksize": "2097152", "info__downloadwait": "10", "info__crypto__ciphers": "змей : УТРА " "info__crypto__salt длина": "512", "info__crypto__pbkdf2-алгоритм": "sha512", "info__crypto__pbkdf2-Итерация": "5000", "info__crypto__chunk размер": "1048576", "info__email__hostname":" весело " "info__email__smtp-аутентификации": "1", "info__email__auth-пароль": "Нету", "info__email__auth-имя пользователя": "blah1", "info__email__from-адрес": "blah2", "info__email__from имя":" лицо, », "info__email__port": "587", "info__email__smtp-безопасный": "TLS", "info__email__bcc-адрес": "blah3", "features__users__download-страницы": "1", "features__users__file зашифровать": "1", "features__users__admin": "0", "features__server__email-проверки": "0", "features__server__softlimit": "1", "features__server__publiclimit": "0", "features__server__hourly-статистика": "1", "features__server__actionlog": "1 " "features__server__limit-оповещение": "1", "features__server__sequential-contentfill": "0"," FEA tures__server__outgoing-почту ":" 0" , "features__server__multiple-счета": "1", "statistics__timed __ # старт": нулевой, "statistics__timed__storage": "0", "statistics__timed__bandwidth": "0", "statistics__timed__downloads": "0" "statistics__forever__storage": "0", "statistics__forever__bandwidth": "0", "statistics__forever__downloads": "0", "limits__server__forever__storage": нулевой, "limits__server__timed__bandwidth": нулевой, "limits__server__timed__downloads": нулевой, "limits__server__timed устареть": нулевая "limits__server__public-FileCount": нулевой, "limits__server__public-Filesize": нулевой, "limits__users__filesize": нулевой, "limits__users__filecount": нулевой, "limits__users__forever__storage": нулевой, "limits__users__timed__bandwidth": нулевой, "limits__users__timed__downloads": нулевой}
Неустранимая ошибка: Uncaught exception «PDOException» с сообщением «SQLSTATE [HY093]: недопустимый номер параметра: параметр не определен» в C: \ Program Files \ Apache24 \ htdocs \ development \ Andromeda \ server \ classes \ database.class.inc.php: 28 Трассировка стека: # 0 C: \ Program Files \ Apache24 \ htdocs \ development \ Andromeda \ server \ classes \ database.class.inc.php (28): PDOStatement-> execute (Array) # 1 C: \ Program Files \ Apache24 \ htdocs \ development \ Andromeda \ server \ classes \ server.class.inc.php (117): Database-> query ('UPDATE objects _...', Array, false) # 2 C: \ Program Files \ Apache24 \ htdocs \ development \ Andromeda \ index.php (71): Server-> Сохранить() # 3 C: \ Program Files \ Apache24 \ htdocs \ development \ Andromeda \ index.php (32): Andromeda-> Run() # 4 { main} брошен в C: \ Program Files \ Apache24 \ htdocs \ development \ Andromeda \ server \ classes \ database.class.inc.php в строке 28
Потому что это не отличает от оператора математическую операцию вычитания в этой точке ... – CBroe