プリペアドステートメントpdoを使用してデータベースにデータを挿入する

I changed the code so that i can insert directly into the database. Now I face an issue with line of code $database->bindParam(':name', $name[0][$i]);. Which gives me the error Fatal error: Call to undefined method PDO::bindParam() How can I fix this?

$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('/\\(.*)\\([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();
        }
}
0
自動インクリメントプライマリキーを持つ簡単な挿入、dbは残りの世話をします
追加された 著者 user557846,

2 答え

データベースをプライマリキーにして自動増分するようにすると、心配する必要はありませんが、それができない場合はforループでスローしてください:

$array = explode("\n",file_get_contents("file.txt"));
foreach($array as $count => $line) {
    $array[$count] = str_replace('xxx',$count+1,$line);
}
1
追加された
私はあなたが今見てことができます変更を加えた。ありがとうございました
追加された 著者 bammab,

最初にコンテンツを取得する:

$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++;
}
1
追加された
@bammab編集を参照してください。
追加された 著者 check123,
@bammab私はPDOに関する経験はありませんが。
追加された 著者 check123,
データは実際にはまだデータベースにないテキストファイルにあります
追加された 著者 bammab,
ありがとう、私はコードをデータベースに直接追加するように変更しました。あなたは今それを見ることができますか?
追加された 著者 bammab,
PHP - 日本のコミュニティ [ja]
PHP - 日本のコミュニティ [ja]
4 参加者の

このグループではPHPについて話します。 パートナー:kotaeta.com