Mengapakah Penyata Disediakan PDO saya Gagal untuk INSERT ke dalam MySQL?

DDD
Lepaskan: 2024-11-24 13:38:12
asal
592 orang telah melayarinya

Why are my PDO Prepared Statements Failing to INSERT into MySQL?

Ralat Penyata Disediakan dengan INSERT INTO dalam PDO

Semasa menavigasi kerumitan PDO, anda mungkin menghadapi kesukaran menggunakan pernyataan yang disediakan untuk pertanyaan MySQL. Pertimbangkan kod berikut:

$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();
Salin selepas log masuk

Walaupun mengikut pendekatan ini, pangkalan data anda tetap kosong.

Penyelesaian terletak pada penggunaan pernyataan yang disediakan yang sesuai. Sebaliknya, gunakan yang berikut:

$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',
]);
Salin selepas log masuk

Pernyataan yang disediakan memberikan sanitasi input. Gunakan ruang letak ':parameter' dalam pernyataan SQL anda dan lulus tatasusunan bersekutu parameter ini dalam fungsi 'laksanakan'. Sebagai alternatif, gunakan '?' pemegang tempat dan lulus tatasusunan nilai.

Kedua-dua kaedah menawarkan kebaikan dan keburukan. Nama parameter pengikatan meningkatkan kebolehbacaan, manakala kaedah yang terakhir memudahkan kod.

Atas ialah kandungan terperinci Mengapakah Penyata Disediakan PDO saya Gagal untuk INSERT ke dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan