簡體   English   中英

如何使用PDO從php文件插入數據?

[英]How do I insert data from a php file using PDO?

我正在嘗試使用來自PHP文件的PDO為我的網站記錄一些數據。 我有以下由JavaScript庫D3調用的代碼。 該調用工作正常,但是當我運行此代碼時,出現“內部服務器錯誤”。

我究竟做錯了什么? 我一直在遵循網站上的指南,並且基本上使用與它們相同的原理。 如果有人可以提供幫助,我將不勝感激。 在此先感謝,下面粘貼了我的代碼。 (當然,數據庫信息是有效的)

    $hostname="xxxx";
    $username="xxxxxx";
    $pw="xxxxxxxx";
    $dbname="xxxx";

    try {
        $pdo = new PDO ("mysql:host=$hostname;dbname=$dbname","$username","$pw");
    } catch (PDOException $e) {
        echo "Failed to get DB handle: " . $e->getMessage() . "\n";
        exit;
    }

    //Gets IP for client.
    $ip = get_client_ip();
    //An email, format of string.
    $email = "test@test.dk";
    //An int, in this case 19.
    $prgm_name = $_GET["prgm"];
    //Piece of text, format of string of course.
    $prgm_options.=$prgm_name;
    $prgm_options.= " - ";
    $prgm_options.=$_GET["gene"];
    $prgm_options.=" - ";
    $prgm_options.=$_GET["data"];
    //Datasize, int.
    $data_size = 0;
    //Timestamp.
    $now = "NOW()";

    //Table name.
    $STAT_TABLE = "stat";

    $query = $pdo->prepare("INSERT INTO $STAT_TABLE (ip, email, prgm, options, datasize, date) VALUES (:ip, :email, :prgm_name, :prgm_options, :data_size, :now);");
    $query->execute(array(  ':ip'=>'$ip',
                             ':email'=>'$email',
                             ':prgm_name'=>$prgm_name,
                             ':prgm_options'=>'$prgm_options',
                             ':datasize'=>'$datasize',
                             ':now'=>$now));

嘗試以下代碼插入

$count = $pdo->exec("INSERT INTO $STAT_TABLE(ip, email, prgm, options, datasize, date) VALUES ('$ip','$email',$prgm_name,'$prgm_options','$datasize',$now)))");
/*** echo the number of affected rows ***/
echo $count;

我喜歡分別綁定每個參數。 我認為它使您可以更好地控制數據類型和大小。

try {
  $sth = $pdo->prepare("INSERT INTO..."); 
  $sth->bindParam(":ip", $ip, PDO::PARAM_STR, 16);   
  $sth->bindParam(":email", $email, PDO::PARAM_STR, 30);     
  // etc...
  $sth->execute();
} catch (Exception $e) { 
  print_r($e);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM