आपको इसे ऐसे ही इस्तेमाल करना चाहिए
<?php
$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 (:fname, :sname, :age)');
$statement->execute([
'fname' => 'Bob',
'sname' => 'Desaunois',
'age' => '18',
]);
आपके इनपुट को साफ करने के लिए तैयार बयानों का उपयोग किया जाता है, और ऐसा करने के लिए आप :foo
. का उपयोग कर सकते हैं बिना SQL के भीतर बाइंड . के लिए कोई एकल उद्धरण चर, और फिर execute()
. में फ़ंक्शन आप SQL कथन में परिभाषित चर के एक सहयोगी सरणी में पास करते हैं।
आप ?
. का भी उपयोग कर सकते हैं :foo
. के बजाय और फिर इस तरह इनपुट करने के लिए केवल मानों की एक सरणी में पास करें;
$statement = $link->prepare('INSERT INTO testtable (name, lastname, age)
VALUES (?, ?, ?)');
$statement->execute(['Bob', 'Desaunois', '18']);
दोनों तरीकों के अपने फायदे और नुकसान हैं। मैं व्यक्तिगत रूप से पैरामीटर नामों को बांधना पसंद करता हूं क्योंकि मेरे लिए इसे पढ़ना आसान है।