Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Błędy pojawiające się w kodzie mysqli i call_user_func_array()

Jest to lepka sytuacja spowodowana zmianą call_user_func_array zachowanie w PHP 5.4 (muszę założyć): Dokumentacja

Choć jest to brzydkie, zadziała wywołanie bind_param w ten sposób:

$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]);
}

Nienawidzę tego tak samo, jak prawdopodobnie. Proponuję przejść z mysqli do PDO który obsługuje zmienne parametry w znacznie ładniejszy sposób (i ogólnie ma lepszą składnię, moim zdaniem):

$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. Wydajność MySQL — klauzula IN a równanie (=) dla pojedynczej wartości

  2. PHP i MYSQL:używanie bcrypt hash i weryfikacja hasła z bazą danych

  3. Czy dwa różne urządzenia mogą mieć ten sam identyfikator rejestracji GCM?

  4. PHP zmienia stare mysql_query na PDO

  5. INSERT i SELECT w jednym zapytaniu MySQL