sql >> Databasteknik >  >> RDS >> Mysql

Fel som visas i mysqli-koden och call_user_func_array()

Detta är en klibbig situation som orsakas av ändring av call_user_func_array beteende i PHP 5.4 (jag måste anta): Dokumentation

Hur fult det än är så fungerar det att anropa bind_param så här:

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

Jag hatar det här lika mycket som du förmodligen gör. Jag föreslår att du byter från mysqli till PDO som hanterar variabla parametrar på ett mycket trevligare sätt (och har överlägsen syntax i allmänhet, enligt min mening):

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


  1. hur frågar man många-till-många?

  2. Facebook user_id :big_int, int eller string?

  3. MariaDB DEFAULT() Förklarat

  4. Överbrygga RDBMS och NoSQL:Introduktion till 2DX UI-kluster