Mysql
 sql >> база данни >  >> RDS >> Mysql

Грешки, появяващи се в mysqli кода и call_user_func_array()

Това е лепкава ситуация, причинена от промяна на call_user_func_array поведение в PHP 5.4 (трябва да предполагам): Документация

Колкото и грозно да е това, ще работи да извикате bind_param по този начин:

$selectedstudentanswerqry .= ' WHERE ' . implode(' AND ', $where);
global $mysqli;
$stmt =$mysqli->prepare($selectedstudentanswerqry);

if (count($where) === 1) {
    $stmt->bind_param($parameterTypes, $parameters[0]);
}
else if (count($where) === 2) {
    $stmt->bind_param($parameterTypes, $parameters[0], $parameters[1]);
}
else if (count($where) === 3) {
    $stmt->bind_param($parameterTypes, $parameters[0], $parameters[1],
       $parameters[2]);
}

Мразя това толкова, колкото и ти вероятно. Предлагам да преминете от mysqli към PDO който обработва променливи параметри по много по-приятен начин (и има превъзходен синтаксис като цяло, според мен):

$pdo = new PDO('mysql:host=localhost', 'username', 'password');
$stmt = $pdo->prepare($selectedstudentanswerqry);
$stmt->execute($parameters);
$selectedstudentanswernum = $stmt->rowCount();


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Извличане на липсващи дати от базата данни чрез MySQL

  2. Намерете най-добрия съвпадащ ред в MySQL (InnoDB)

  3. Проблем с типа данни на Laravel 4.2 BIT

  4. използвайки (-) тире в името на таблицата на mysql

  5. MySQL:как да премахнете двойни или повече интервали от низ?