簡體   English   中英

PDO查詢不要轉到表SQL

[英]PDO query don't go to table SQL

我對PDO有問題...

我有以下代碼:

                        <center>
            <?php

            /*
                $payid = $_GET["payid"];
                $data = mysql_connect('localhost','cheapacc_ross2','dsaikoepwq2312','cheapacc_account');
                mysql_select_db('cheapacc_account',$data);
                $pay1 = mysql_query("SELECT ID,Categorie,Naam,Email,md5_ID FROM acount_Betalingen WHERE md5_ID = '".$payid."' ");
                $pay = mysql_fetch_object($pay1); 
                if($pay){
                    echo 'betaling is gelukt';
                }else{
                    echo 'Oops jij liegt ons voor?? '.$pay->md5_ID .mysql_error();
                }
                */

                $flag=0;
                require_once '../../include/config.php';
                require_once '../../include/processes.php';
                $Login_Process = new Login_Process;
                $Login_Process->check_status($_SERVER['SCRIPT_NAME']);

                $type = base64_decode($_GET["t"]);
                $amount = (int)base64_decode($_GET["a"]);

                $host = "localhost";
                $username = "root";
                $password = "20101998";
                $dbname = "ross23";

                try
                {
                    $db = new PDO("mysql:host=" . $host . ";dbname=" . $dbname, $username, $password);
                }
                catch(PDOException $e)
                {
                    exit("Error database connection. E: " . $e);
                }

                $info = $_SESSION['info'];

                if(!isset($_GET["t"]) || !isset($_GET["a"]) || !isset($_GET["h"]) || sha1(md5($info)) != $_GET["h"])
                {
                    exit("1: FOUT! / You may not change the url, or you get a ip ban!");
                }

                if(isset($_GET["t"]) && isset($_GET["a"]) && isset($_GET["h"]) && sha1(md5($info)) == $_GET["h"])
                {
                    $q = $db->query("SELECT COUNT(*) FROM account_" . $type . " ");
                    $count = $q->fetchColumn();

                    if($count < $amount)
                    {
                        die("Er zijn te weinig accounts voor jouw betaling, meld dit aan de administrator!");
                    }

                    for($i = 0; $i < $amount; $i++)
                    {
              $flag=0;
                        $getid = $db->prepare("SELECT id FROM account_".$type." WHERE used = ?");
                        $getid->execute( array('0') );
                        $pid = $getid->fetch();

                        if($pid[0] == null)
                        {
                                    exit("Er zijn geen accounts over, meld dit aan de administrator!");
                        }


                        $id = $pid[0]; 

                        $stmt = $db->prepare("SELECT * FROM account_" . $type . " WHERE id = ? AND used = ?");
                        $stmt->execute( array($id, '0') );
                        $result = $stmt->fetch();

                        if(!$result)
                        {
                            exit("2: FOUT! / You may not change the url, or you get a ip ban.");
                        }

                        $userinfo = $db->prepare("SELECT userid FROM cw_users WHERE info = ?");
                        $userinfo->execute( array($info) );
                        $userinfo = $userinfo->fetch();


                        $sql = $db->prepare("INSERT INTO account_lijst SET user_id = ? WHERE account = ?");
                        $sql->execute(array($userinfo[0], $result));


                        $user_id = $_SESSION['userid'] ; 
            // query
            $sql = "INSERT INTO account_lijst (user_id,soort) VALUES (:user_id,:soort)";
            $q = $db->prepare($sql);
            $q->execute(array(':author'=>$user_id,
                              ':title'=>$type));






                        $account_info = explode(":", $result[1]);

                        $html = "Account Username: " . $account_info[0] . "<br />";
                        $html .= "Account Password : " . $account_info[1];
                        $html .= "<br /><br />";
                        $flag = 1;
                        if ($flag==1){
                        $sql = $db->prepare("UPDATE account_" . $type . " SET used = ? WHERE ID = ?");
                         $sql->execute( array("1", $id) );



                            echo $html;
                        }

                        echo 'test';  
                    }
                }

大部分內容有效,但可以通過INSERT INTO account_lijst進行

它不起作用...

但是我檢查了所有東西,但我認為一切都很好:S ...

有人可以幫我這個代碼嗎?

*編輯SQL

    CREATE TABLE IF NOT EXISTS `account_lijst` (
    `id` int(11) NOT NULL AUTO_INCREMENT,
      `user_id` int(11) NOT NULL,
      `account` text NOT NULL,
      `date` text NOT NULL,
      `soort` text NOT NULL,
      PRIMARY KEY (`id`)
     ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

根據您的查詢:

$sql = $db->prepare("INSERT INTO account_lijst SET user_id = ? WHERE account = ?");
                    $sql->execute(array($userinfo[0], $result));

嘗試嘗試:

$sql = $db->prepare("INSERT INTO account_lijst SET user_id = :user_id WHERE account = :account");
$sql->bindValue(':user_id', $userinfo['0']);
$sql->bindValue(':account', $result);
$sql->execute();

如果您給出的參數是好的參數,應該可以完美地工作? 如果不能,請轉儲用於查詢的參數和表的結構,以便我們進行更深入的調試? :)

檢查您的代碼,我猜(可能)由於您編寫where子句的方式而在此行附近存在錯誤:

 $userinfo = $db->prepare("SELECT userid FROM cw_users WHERE info = ?");

嘗試以下方法:

 $userinfo = $db->prepare("SELECT userid FROM cw_users WHERE info = ' ? ' ");

同樣,在插入中,您應該使用簡單的撇號來命令執行該插入:

   $sql = $db->prepare("INSERT INTO account_lijst SET user_id = ? WHERE account = ?");

希望它麻木!

暫無
暫無

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

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