1

私は現在、さまざまなフィールドを持つHTMLフォームを持っています。たとえば、次のとおりです。

Please Enter First Name: <input type ="text" name="First_Name" /> <br />

このフォームからデータベースに情報を取得しようとしています。しかし、データベースには何も入力されていないようです。コードは以下の通りです。

<?php

$dbname='ecig';
$dbhost='localhost';
$dbpass='password';
$dbuser='eciguser';


$dbhandle = mysql_connect($dbhost, $dbuser, $dbpass)
  or die("Unable to connect to MySQL");
echo "Connected to MySQL<br>";


//select a database to work with
$selected = mysql_select_db("ecig",$dbhandle)
  or die("Could not select examples");



$res=mysql_query("INSERT INTO Persons (First_Name, Second_Name) VALUES('$_POST[First_Name]', yes)");
mysql_close();

if (array_key_exists ('check_submit', $_POST )) 

echo "Your Name is : {$_POST['First_Name']}<br />";
echo "Your Second Name is : {$_POST['Second_Name']}<br />";
echo "Your Email Address is : {$_POST['Email_Address']}<br />";
echo "Your Password Is : {$_POST['Password']}<br />";

?>

問題は、これが私のデータベースに影響を与えていないので、phpとSQLが相互作用してデータを入力するために、不足しているものがあり、SQLコードに追加する必要があるかどうかです。

または、INSERT INTOステートメントから何かが欠落していますか?

とにかく助けていただければ幸いです、ありがとう。

4

2 に答える 2

0

クエリにエラーがあります。最後の「yes」には引用符が必要です。

最初にMySQLに対して直接クエリを実行して、構文が正しいかどうかを判断してから、必要な値を置き換えてみてください。

あなたの例では次のようになります。

$res=mysql_query("INSERT INTO Persons (First_Name, Second_Name) VALUES ('$_POST[First_Name]', 'yes')");

ちょっとしたアドバイスですが、ユーザーからデータを受信して​​いる場合は入力をサニタイズしてください。そうしないと、SQLインジェクション攻撃に対して脆弱になります。

また、mysql_関数は現在正式に非推奨になっているため、mysqli_関数を使用してください。あなたはw3schools.comのようなほとんどすべてのサイトでそれらについてもっと読むことができます

mysqli_を使用した挿入の完全な例:http ://www.w3schools.com/php/php_mysql_insert.asp

幸運を

于 2013-03-26T05:23:06.027 に答える
0

使用するmysql_real_escape_string()

$res=mysql_query("INSERT INTO Persons (First_Name, Second_Name) VALUES ('".mysql_real_escape_string($_POST['First_Name'])."', '".mysql_real_escape_string($_POST[Second_Name])."')");
于 2013-03-26T05:24:29.023 に答える