Heim  >  Artikel  >  Backend-Entwicklung  >  Wie verwende ich vorbereitete Anweisungen mit PDO für MySQL-INSERT-Abfragen richtig?

Wie verwende ich vorbereitete Anweisungen mit PDO für MySQL-INSERT-Abfragen richtig?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-24 22:43:15834Durchsuche

How to Properly Use Prepared Statements with PDO for MySQL INSERT Queries?

Ausführen von MySQL-INSERT-Abfragen mithilfe vorbereiteter Anweisungen mit PDO

Im Bereich der PHP-Datenobjekte (PDO) können beim Versuch Schwierigkeiten auftreten Führen Sie SQL-Abfragen über vorbereitete Anweisungen aus. Ein häufiges Problem besteht darin, die INSERT INTO-Anweisung zu verwenden, um Datensätze zu einer Datenbank hinzuzufügen.

Bedenken Sie den folgenden Code:

$dbhost = "localhost";
$dbname = "pdo";
$dbusername = "root";
$dbpassword = "845625";

$link = new PDO("mysql:host=$dbhost;dbname=$dbname","$dbusername","$dbpassword");

$statement = $link->prepare("INSERT INTO testtable(name, lastname, age)
        VALUES('Bob','Desaunois','18')");

$statement->execute();

Dieser Code versucht, einen neuen Datensatz in die Testtabellentabelle einzufügen MySQL-Datenbank. Die Datenbank bleibt jedoch leer.

Um dieses Problem zu beheben, müssen Sie parametrisierte Abfragen verwenden, anstatt Werte direkt in die SQL-Anweisung einzubetten. Parametrisierte Abfragen verwenden Platzhalter (?) oder benannte Parameter (:parameter) zur Darstellung von Werten, die dann während der Ausführung an tatsächliche Werte gebunden werden. Dieser Ansatz verhindert SQL-Injection-Angriffe und stellt die Datenvalidierung sicher.

Die korrekte Verwendung vorbereiteter Anweisungen mit INSERT INTO ist wie folgt:

$dbhost = 'localhost';
$dbname = 'pdo';
$dbusername = 'root';
$dbpassword = '845625';

$link = new PDO("mysql:host=$dbhost;dbname=$dbname", $dbusername, $dbpassword);
$link->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$statement = $link->prepare('INSERT INTO testtable (name, lastname, age)
    VALUES (:fname, :sname, :age)');

$statement->execute([
    'fname' => 'Bob',
    'sname' => 'Desaunois',
    'age' => '18',
]);

Durch die Verwendung parametrisierter Abfragen schützen Sie Ihre Anwendung vor böswillige Eingaben und stellen Sie die Integrität Ihrer Daten sicher.

Das obige ist der detaillierte Inhalt vonWie verwende ich vorbereitete Anweisungen mit PDO für MySQL-INSERT-Abfragen richtig?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn