Mögliche Duplizieren:
Php PDO::bindParam data types.. how does it work?PDO: Was ist der Zweck der Verwendung von data_type während der Bindung?
zum Beispiel sagen, dass ich die folgende vorbereitete Erklärung haben:
$sth = $dbh->prepare('SELECT `name` FROM `user` WHERE `user_id` = :user_id');
ich den user_id Parameter wie so binden könnte:
$sth->bindValue(':user_id', $user_id_value);
Und ich wäre immer noch vor SQL-Injektionen sicher.
BindValue() ist jedoch auch ein optionaler Parameter namens data_type, mit dem Sie einen expliziten Datentyp festlegen können. Beispiel:
$sth->bindValue(':user_id', $user_id_value, PDO::PARAM_INT);
Das erlaubt mir zu sagen, dass user_id eine ganze Zahl ist.
Meine Frage ist: Warum verwenden Sie den Parameter data_type in bindValue, wenn Sie gegen SQL-Injektionen mit oder ohne es sicher sind? Ist es da, um die Datenintegrität zu erzwingen? Wenn Sie Ihre Daten vorher validieren, müssen Sie sich darum sorgen, sie zu verwenden? Gibt es andere Vorteile für die Verwendung, an die ich nicht gedacht habe?
Welchen Teil der Frage beantworte Sie? Ich sehe immer noch keine Argumentation außer "es ist eine gute Sache", was überhaupt keine technische Erklärung ist. – zerkms
ähm ... du hast gefragt, ob es da ist, um die Integrität des Datentyps zu erzwingen. wenn du es nicht benutzen willst, tu es nicht. Ich benutze es, weil ich diese zusätzliche Ebene der Durchsetzung mag. - jedes kleine hilft [wie meth Benutzer sagen würden] –
Ich bin kein OP. Aber dennoch - "weil ich diese zusätzliche Ebene der Durchsetzung mag" - ist keine technische Erklärung. Können Sie ein Beispiel geben, wo diese zusätzliche Ebene der Durchsetzung wirklich nützlich sein kann, und es gibt Unterschiede mit und ohne explizite Typspezifikation? – zerkms