Ben karışık başarı ile PHP PDO sargı ile SQLite kullanmaya çalışıyorum. Ben veritabanı ince okuyabilir, ama ben tarayıcıda sayfayı görüntülemek benim güncellemeleri hiçbiri veritabanına taahhüt ediliyor. İlginçtir, benim kabuk komut dosyasını çalıştırarak veritabanını güncellemek yapar. Ben suçlu olarak dosya izinlerini şüpheli, hatta veritabanı tam erişim (chmod 777) sağlayan sorun devam. Ben dosya sahibini değiştirmeyi denemek mi? Eğer öyleyse, ne?
Bu arada, benim makine standart Mac OS X Leopard aktive PHP ile yüklemelisiniz.
Cevabınız için teşekkür ederim. Ben sadece kodunuzu koştu ve PHP kullanıcı _www olarak çalışır gibi görünüyor. Sonra _www tarafından sahip olunan veritabanı Chowning çalıştı, ancak bu da işe yaramadı.
Ben de PDO'su errorInfo işlevi bir hata gerçekleşti anlamına gelmez dikkat etmelisiniz. Bu PDO şekilde salt okunur için veritabanı açarak bir ayar olabilir mi? Ben SQLite tüm dosya kilitleri yazmak gerçekleştiren duydum. Bu veritabanı yazma engelleyerek başka bir şey tarafından kilitli olması mümkün mü?
Ben söz konusu kod dahil etmeye karar verdik. Bu Grant's script PHP için daha fazla veya daha az bir liman olacak. Şimdiye kadar sadece Sorular bölümü bulunuyor:
<?php
$db = new PDO('sqlite:test.db');
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://stackoverflow.com/users/658/kyle");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_COOKIE, "shhsecret=1293706652");
$page = curl_exec($ch);
preg_match('/summarycount">.*?([,\d]+)<\/div>.*?Reputation/s', $page, $rep);
$rep = preg_replace("/,/", "", $rep[1]);
preg_match('/iv class="summarycount".{10,60} (\d+)<\/d.{10,140}Badges/s', $page, $badge);
$badge = $badge[1];
$qreg = '/question-summary narrow.*?vote-count-post"><strong.*?>(-?\d*).*?\/questions\/(\d*).*?>(.*?)<\/a>/s';
preg_match_all($qreg, $page, $questions, PREG_SET_ORDER);
$areg = '/(answer-summary"><a href="\/questions\/(\d*).*?votes.*?>(-?\d+).*?href.*?>(.*?)<.a)/s';
preg_match_all($areg, $page, $answers, PREG_SET_ORDER);
echo "<h3>Questions:</h3>\n";
echo "<table cellpadding=\"3\">\n";
foreach ($questions as $q)
{
$query = 'SELECT count(id), votes FROM Questions WHERE id = '.$q[2].' AND type=0;';
$dbitem = $db->query($query)->fetch(PDO::FETCH_ASSOC);
if ($dbitem['count(id)'] > 0)
{
$lastQ = $q[1] - $dbitem['votes'];
if ($lastQ == 0)
{
$lastQ = "";
}
$query = "UPDATE Questions SET votes = '$q[1]' WHERE id = '$q[2]'";
$db->exec($query);
}
else
{
$query = "INSERT INTO Questions VALUES('$q[3]', '$q[1]', 0, '$q[2]')";
echo "$query\n";
$db->exec($query);
$lastQ = "(NEW)";
}
echo "<tr><td>$lastQ</td><td align=\"right\">$q[1]</td><td>$q[3]</td></tr>\n";
}
echo "</table>";
?>