2016-05-22 10 views
-1

データベース内に3 ('$asin', '$w_email', '$work_link')データを挿入する必要がありますが、その2を挿入します。('$asin', '$w_email')しかし( '$ work_link')がありません。私は何をしているのですか?またはこれらの3つのデータをすべて挿入するソリューションは何ですか?php mysqlデータの挿入 - whileループからの値がありません

$results = mysql_query("SELECT asin_link FROM work WHERE email=$w_email"); 
     while($row = mysql_fetch_array($result)) { 
     $work_link = $row['asin_link']; 
     echo '<a href="'.$work_link.'" target="'.$work_link.'">Visit Work link<br></a>'; 
     echo '<form action="" method="post"> 
     ASIN Number: <input type="text" name="asin"><br> 
     <input type="submit" value="Submit" name="submit"> 
     </form>';} 
     if (isset($_POST['submit'])) { 
     $asin = $_POST['asin']; 
     $qu ="INSERT INTO work (asin, email, asin_link) VALUES ('$asin', '$w_email','$work_link')"; 
     if (mysql_query($qu)) { 
     echo "Your ASIN was received! Thanks"; 
     } 
     } 
+0

あなたは 'asin_link'の値を取得しますか? – user3284463

+1

**警告**:PHPを学んでいるだけの方は、[mysql_query'](http://php.net/manual/en/function.mysql-query.php)インタフェースを使用しないでください。それはPHP 7で削除されたのでとてもひどいと危険です。[PDOのようなものは学ぶのが難しくない](http://net.tutsplus.com/tutorials/php/why-you-should-be-using-phps -pdo-for-database-access /)と[PHP The Right Way](http://www.phptherightway.com/)のようなガイドがベストプラクティスを説明しています。あなたのユーザーパラメータは**適切にエスケープされていません**(http://bobby-tables.com/php)、悪用可能な[SQLインジェクションバグ](http://bobby-tables.com/)があります。 – tadman

+0

'WHERE email = $ w_email'という文字列である可能性が高いので、そのように扱います。 –

答えて

0

$quストリング上に、例えば、全ての値($asin$w_email$work_link)をエコーし​​よう(おそらく金型を使用()も簡単に印刷するかを確認します)。

EDIT:PHPのmysql_ APIをもう使用しないでください。代わりに、mysqliを試してください。これは、mysqlが推奨されないためです。

EDIT2:これは現在のところ関連していませんが、あなたの変数をエスケープして今すぐクエリが脆弱であるようにする必要があります。 :)

幸運!

関連する問題