2017-10-31 5 views
0

で2つの変数を比較するために私はそれは常に失敗した変数を比較してみてください持っている..私はmysqlのテーブルにデータを挿入したいが、それは前に挿入すべきではないのphp

してください。

<?PHP 
$servername = "localhost"; 
$username = "root"; 
$password = ""; 
$dbname = "sunil_electronics"; 
$conn = new mysqli($servername, $username, $password, $dbname); 
$sql = "SELECT p_id FROM inquirycart WHERE p_id='$pid'"; 
$result = $conn->query($sql); 

// output data of each row 
$row = $result->fetch_assoc(); 
$id = $row['p_id']; 

if ($id == $pid) { 
    header('Location: ' . $url . '&key1=' . $key . '&info=info'); 
} else { 
    $sql1 = "INSERT INTO inquirycart (p_id,p_name, p_image) 
     SELECT p_id, p_name, p_image FROM $key 
     WHERE p_id = '$pid'"; 
    $result1 = $conn->query($sql1); 

    header('Location: ' . $url . '&key1=' . $key . '&succ=succ'); 
} 
?> 
+2

あなたのコードに '$ pid'が定義されていないことに注意してください。 –

+0

コードには多くのSQLインジェクションの脆弱性がありますが、修正することを忘れないでください。 –

+0

申し訳ありませんが、私は$ key = $ _ GET ['key']を使用しています。 、$ url = $ _ GET ['url']; 、$ pid = $ _ GET ['id']; –

答えて

0

p_idが以前使用されていない場合、クエリは行を返しません。 $result->fetch_assoc()NULLを返し、$row['p_id']は失敗します。

返される行の数だけを確認できます。

if ($result->num_rows > 0) { 
    header('Location: ' . $url . '&key1=' . $key . '&info=info'); 
} else { 
    ... 
} 
関連する問題