War es hilfreich?

Lösung

Sehen Sie sich die Antwort auf eine ähnliche Frage, die hier gefragt wurde vor (zweites Codebeispiel):

ich habe, wie verwende ich jedes in einer mySQL-Abfrage (in pHP)?

Es läuft darauf hinaus:

  • Erstellen Sie die SQL-Zeichenfolge mit der richtigen Menge von Fragezeichen
  • Verwendung call_user_func_array() Array an den Query-String zu binden

Andere Tipps

Es ist nicht möglich, eine Liste mit variabler Länge auf eine einzige gebundene Variable zu binden.

Und falls Sie sind die Zeichenfolge $ids zu binden, am Ende werden Sie tatsächlich mit:

SELECT foo,blar FROM table WHERE id IN ('123,535,345,567,878')

(Beachten Sie die Anführungszeichen um die Liste der IDs).

Erstellen Sie Ihre eigene Abfrage mit der richtigen Anzahl von Fragezeichen und gebundene Parameter tatsächlich gearbeitet haben sollten - Sie, dass erneut versuchen müssen, können und berichten über die tatsächlichen Fehler

.

Alternativ kann diese eine jener Gelegenheiten sein kann, wo es leider notwendig ist Ihre eigene SQL-Hand-Handwerk und nicht gebunden Parameter verwenden.

dachte ich, der Punkt der vorbereiteten Anweisungen so in dieser Situation war man konnte einfach tun:

$stmt = $this->mysqli->prepare("UPDATE radcheck SET attribute = ?, value = ?  WHERE username = ? AND attribute LIKE 'CS-Total-Octets%'");
foreach ($usernames as $username)
{
    $stmt->bind_param('sss', $bandwidth_types[$bandwidth_type], $bandwidth_bytes, $username);
    $stmt->execute();
}
$stmt->close();
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top