2014-11-09 129 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