PHPは

2017-06-07 3 views
-2
$date = date('Y-m-d H:i:s'); 
     $qry = "INSERT INTO `guest` (`name`, `pincode`, `address`, `phone`, `date`) VALUES ('".$_SESSION['name']."', '".$_SESSION['pincode']."', '".$_SESSION['address']."', '".$_SESSION['phone']."', '".$date."');"; 
     $result = $conn->query($qry); 
     //echo $qry; 
     $qry = "select guest_id from guest where name = '".$_SESSION['name']."' and pincode = '".$_SESSION['pincode']."' and address= '".$_SESSION['address']."' and phone= '".$_SESSION['phone']."' and date= '".$date."';"; 
     //echo $qry; 
     $result = $conn->query($qry); 
     $row = $result -> fetch_assoc(); 
     //echo $row['guest_id']; 
     $guest_id = $row['guest_id']; 
     $date = date('Y-m-d H:i:s'); 
     //$qry1 = "INSERT INTO order (`order_date`, `payment_type`, `payment_status`, `order_status`, `order_type`, `amount`, `cust_id`) VALUES ('".$date."', 'cod', 'yes', 'Pending', 'yes', ".$_SESSION['total'].", '".$guest_id."');"; 
     $qry1 = "INSERT INTO `grocery`.`order` (`order_date`, `payment_type`, `payment_status`, `order_status`, `delivery_slot`, `order_type`, `amount`, `deliver_date`, `cust_id`) VALUES ('sd', 'asd', 'sdf', 'sd', '4', 'sf', '23', '2017-04-19', 'sdfs');"; 

     $result1 = $conn->query($qry1); 
     echo $qry1; 

最初の2つのクエリーをMySQLへデータを追加されていない実行取得され、データはDBへの追加された..しかし、最後の文は、DBにデータを追加されていません。助けてくださいPHPは

+0

すべてのエラーを取得しますか? –

+0

エラーが発生していません –

+1

@deepakasaiあなたは挿入後に選択したいですか? –

答えて

0

私は$connPDOオブジェクトと仮定しようとしています。

1)は、より高いレベルのデータベース抽象化を使用します。

は、私はいくつかの提言を持っています。 DBALは本当に素晴らしいです。

2)あなたはPDOを使用するつもりなら、あなたはそのエラーが何であったかを知ること$conn->errorInfo$conn->errorCodeを呼び出して、エラーが発生したかどうかを知るためにfalseため$conn->query()の戻り値をチェックする必要があります。関数呼び出しでは常にエラー条件を処理する必要があります。

3)が代わりにエラー条件を処理する、PDOは使用して例外をスローするように構成することができます。これはあなたが単にDBエラーで中止したい場合に書き込むために以下のエラー処理コードを持っていることを意味し

$conn->setAttribute("PDO::ATTR_ERRMODE", PDO::ERRMODE_EXCEPTION); 

。片側にSQLインジェクションの問題を残し

+0

それはpdoではありません..そのmysqliオブジェクト指向..これでどのようにエラーレポートを取得するのですか? –

+0

mysqli_error()またはmysqli_connect_error()を使用してエラーを表示できます(存在する場合)。 –

0

は、ちょっと、3行目の後にすべてがこれを置き換えることができますように私には思える:

 INSERT INTO `order` 
     (order_date 
     ,payment_type 
     ,payment_status 
     ,order_status 
     ,order_type 
     ,amount 
     ,cust_id) 
     SELECT CURDATE() 
      , 'cod' 
      , 'yes' 
      , 'Pending' 
      , 'yes' 
      , {$_SESSION['total']} 
      , guest_id 
      FROM guest 
     WHERE name = '{$_SESSION['name']}' 
      AND pincode = '{$_SESSION['pincode']}' 
      AND address = '{$_SESSION['address']}' 
      AND phone = '{$_SESSION['phone']}' 
      AND date = CURDATE();