2014-11-09 203 views
1

我有,例如,該網址與最終spesific paramater:插入數據 - PHP PDO

http://example.com/index.php?id_user=84759832475 

價值[id_user=**84759832475**]由自己創造,我已經宣佈它在我的腳本中。

$txtemail = strip_tags(isset($_POST['txtemail'])) ? strip_tags($_POST['txtemail']) : ''; 
$txtemail=strip_tags($txtemail); 
$txtname = strip_tags(isset($_POST['txtname'])) ? strip_tags($_POST['txtname']) : ''; 
$txtname =strip_tags($txtname); 
$id_user="84759832475"; 

$stmt="SELECT * FROM table_name WHERE emailz=:txtemail AND namez=:txtnamez"; 
$pgdata = $myDb->prepare ($stmt); 
//bind semua variabel login dalam parameter 
$pgdata->bindParam(':txtname', $txtname, PDO::PARAM_STR,31); 
$pgdata->bindParam(':txtemail', $txtemail, PDO::PARAM_STR,31); 
//eksekusi statemen prepare tadi 
$pgdata->execute(); 
//cek & lihat hasil 
//$cekdata = $pgdata->fetchColumn(); 
if(!$pgdata->rowCount()> 0){ 
    $pgdata = $myDb->prepare('INSERT INTO table_name (namez,emailz,userid) VALUES (:txtname,:txtemail,?????)'); 
    $pgdata->execute(array(':namez'=>$txtname, ':emailz'=>$txtemail, ':userid'=>$id_user)); 

在這種情況下,問號??????讓我困惑寫什麼。 如果我的英語不好解釋這個問題,我很抱歉。

回答

1

只需要添加另外一個名爲佔位符,其他準備好的聲明中,只是和其他人一樣:

$txtemail = isset($_POST['txtemail']) ? strip_tags($_POST['txtemail']) : ''; 
$txtname = isset($_POST['txtname']) ? strip_tags($_POST['txtname']) : ''; 
$id_user = "84759832475"; 

$stmt = 'SELECT COUNT(id) AS total FROM table_name WHERE emailz = :txtemail AND namez = :txtnamez'; 
$pgdata = $myDb->prepare($stmt); 

$pgdata->bindParam(':txtnamez', $txtname, PDO::PARAM_STR); 
$pgdata->bindParam(':txtemail', $txtemail, PDO::PARAM_STR); 
$pgdata->execute(); 

$result = $pgdata->fetch(PDO::FETCH_ASSOC); 

if($result['total'] > 0){ 

    $pgdata = $myDb->prepare(' 
     INSERT INTO table_name (namez,emailz,userid) 
     VALUES (:txtname, :txtemail, :userid) 
    '); 
    // just add another named placeholer :userid 

    $pgdata->execute(array(':txtname'=> $txtname, ':txtemail'=> $txtemail, ':userid' => $id_user)); 
} 
+1

它的工作原理!但是這不是真正的ID(數字)。它在數量上工作正常。它可以是混合(數字和字母)。我嘗試修改並添加新的輸入文本「隱藏」類型並設置腳本<?php echo strip_tags($ _ post ['id_user']); ?>。然後一切都完成了。我很欣賞 – 2014-11-09 15:45:56

+1

@HermanNz哦好吧,'$ id_user'只是一個例子,真正的價值應該在表格中,好吧,這是有道理的,我很高興這有助於 – Ghost 2014-11-10 00:29:48

+0

當然,@Ghost,必須在表格內..這就是爲什麼我喜歡這個甜美而不可思議的論壇..:D – 2014-11-10 15:28:16