// اتصل أولاً بقاعدة بيانات MySQL
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
// إذا كنت تريد الاتصال بـ mssql:
//mssql:host=localhost;dbname=testdb
// الاتصال بـ pgsql:
//pgsql:host=localhost port=5432 dbname=testdb user=bruce كلمة المرور=mypass
// الاتصال بـ odbc(DSN)
//odbc:testdb
// حتى الوصول:
//odbc:Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\db.mdb;Uid=Admin
// هناك أيضًا Oracle و sqlite و db2....
// تنفيذ استعلام
foreach ($dbh->query('SELECT * from FOO') كصف $) {
print_r($row); // هذه النتيجة مشابهة لـ mysql_fetch_array. يمكن تعديل PDOStatement::setFetchMode.
}
//أيضًا:
$sth = $dbh->prepare("اختر الاسم واللون من الفاكهة");
$sth->execute();
// اقرأ مجموعة السجلات بالكامل في المصفوفة:
$result = $sth->fetchAll();
print_r(نتيجة $);
//الإخراج:
صفيف
(
[0] => المصفوفة
(
[NAME] => كمثرى
[0] => كمثرى
[اللون] => أخضر
[1] => أخضر
)
[1] => مصفوفة
(
[الاسم] => بطيخ
[0] => بطيخ
[اللون] => وردي
[1] => وردي
)
)
//إدراج/حذف/تحديث البيانات:
$count = $dbh->exec("احذف من الفاكهة حيث اللون = 'أحمر'");
//$count هو عدد العناصر المحذوفة. أي ما يعادل mysql_affected_rows
// يمكنك أيضًا استخدام PDOStatement::rowCount
// لقد نسيت قاعدة البيانات التي استخدمتها. . . .
إذا ($db->getAttribute(PDO::ATTR_DRIVER_NAME) == 'mysql') {
echo "يعمل على mysql؛ القيام بشيء خاص بـ mysql هناn";
}
// Mysql_escape_string كان يُستخدم عند إدخال البيانات، الآن؟
طباعة "سلسلة غير مقتبسة: $stringn";
اطبع "السلسلة المقتبسة: " . $conn->quote($string) "n";
//يحصل:
سلسلة غير مقتبسة: لطيفة
السلسلة المقتبسة: "لطيفة"
// كما ترى، حتى علامات الاقتباس تتم إضافتها تلقائيًا الآن. . . .
// لاحظ أن النتائج تختلف باختلاف قواعد البيانات، مثل بعض ' => ''، وبعضها ' => '، => \
// لا داعي للقلق الآن، تلقائي بالكامل.
// أخيرًا لا بد لي من إغلاقه
$كون = فارغ;
//لكن! يمكنك البقاء على اتصال من خلال:
$dbh = شركة تنمية نفط عمان جديدة('odbc:SAMPLE', 'db2inst1', 'ibmdb2',
array(PDO_ATTR_PERSISTENT => true));
// بسيط جدًا، أليس كذلك؟
المرفقات: طريقة اتصال خاصة بسيطة جداً:
$stmt = $dbh->prepare("SELECT * FROM REGISTRY Where name = ؟");
if ($stmt->execute(array($_GET['name']))) { // ما الذي تخاف منه؟ الاقتباس التلقائي!
بينما ($row = $stmt->fetch()) {
print_r($row);
}
}
أيضًا:
$stmt->bindParam(1, $id);
$stmt->bindParam(2, $_FILES['file']['type']);
$stmt->bindParam(3, $fp, PDO::PARAM_LOB);
أين يمكنني العثور على هذه الوظيفة الجيدة؟ php5.1 وما فوق موجود في الامتداد، php5 موجود في pecl، php4 لا تفكر في ذلك، أليس كذلك؟