2011-12-19 7 views
0

データベースに直接挿入できるようにコードを変更しました。今私はコード$database->bindParam(':name', $name[0][$i]);の行で問題に直面しています。どちらが私にエラーを与えるFatal error: Call to undefined method PDO::bindParam()これを修正するには?プリペアドステートメントでデータベースにデータを挿入するpdo

$hostname = 'XXX'; 
$database = 'XXX'; 
$username = 'XXX'; 
$password = 'XXX'; 
$database = new PDO("mysql:host=$hostname;dbname=$database", $username, $password); 

function get_data($url) 
{ 
    $ch = curl_init(); 
    $timeout = 5; 
    curl_setopt($ch,CURLOPT_URL,$url); 
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); 
    curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout); 
    $data = curl_exec($ch); 
    curl_close($ch); 
    return $data; 
} 

$html = get_data($_GET['url']); 
preg_match_all('/\<font face\=\"Arial\"\>\<strong\>(.*)\<br\>\<font color/', $html, $name); 
preg_match('/\<strong\>([A-Z\s0-9]+) BIRTHDAYS\<\/strong\>/', $html, $date); 

for ($i=0, $n=count($name[1]); $i<$n; ++$i) {  
     try { 
      $insert = $database->prepare("INSERT INTO bday (name, birthdate) VALUES (:name, :date)"); 

      $database->bindParam(':name', $name[0][$i]); 
      $database->bindParam(':date', $date[1]); 

      $insert->execute(); 
     } 

     catch (PDOException $e) { 
      echo $e->getMessage(); 
     } 
} 
+2

簡単な挿入、DBは残り –

答えて

1

まずコンテンツをフェッチ:

$content = file_get_contents('filename'); 

は、それぞれの行を取得します。

$line = explode('\n', $contents); 

は今、あなたは、アレイ内の各ラインを持っています。各ループスルー、私は、データベースが自動増分はそうあなたがそれを心配する必要はありませんが、それだけでは不可能である場合、主キーを持っているになるだろうカンマで再びそれを爆発し、DB

$ct = count($arr); 
while($i < $ct) 
{ 
    $arr = explode(',', $line[$i]); 
    /* Insert into database value $i, $arr[1], $arr[2], just ignore $arr[0] which contains your original string */ 
    $i++; 
} 
+0

の世話をするデータがデータベースにテキストファイルに実際にはない、まだ – bammab

+0

は編集を参照してください@bammab 。 – check123

+0

おかげさまで、データベースに直接追加するコードを変更しましたので、今すぐご覧ください。 – bammab

1

に挿入ループのためにそれを投げる:自動インクリメントの主キーを持つ

$array = explode("\n",file_get_contents("file.txt")); 
foreach($array as $count => $line) { 
    $array[$count] = str_replace('xxx',$count+1,$line); 
} 
+0

私はあなたが今見てことができます変更を加えた。ありがとうございました – bammab

関連する問題