0

私はこのコードを書きました

if(isset($_POST['update'])) {
            $webname = $_POST['webname'];
            $webmeta = $_POST['webmeta'];
            $webdesc = $_POST['webdesc'];

            $sql=("UPDATE settings (name, meta, description) VALUES ('$webname', '$webmeta', '$webdesc')");
            }

しかし問題は、データベースが更新されず、コードに問題が見つからないことです...送信ボタンに「更新」という名前があり、すべてのフィールドがコードと同じです

4

5 に答える 5

2

それは挿入です!更新しないでください!

$sql=("UPDATE `settings` SET `name` = '$webname',
                             `meta` = '$webmeta',
                              `description` = '$webdesc')
               WHERE [some condition]");

そして、[some condition]を有効な条件に置き換えます。

コードはSQLインジェクションに対して非常に脆弱です。

これらを置き換えることにより、入力をエスケープすることを検討してください。

$webname = $_POST['webname'];
$webmeta = $_POST['webmeta'];
$webdesc = $_POST['webdesc'];

と:

$webname = mysql_real_escape_string($_POST['webname']);
$webmeta = mysql_real_escape_string($_POST['webmeta']);
$webdesc = mysql_real_escape_string($_POST['webdesc']);

または、PDOやMySQLiのような同等のもの。

于 2012-12-28T17:49:29.137 に答える
0

実行する必要があります

$connection = mysql_connect($server, $serv_Username, $serv_Password);
mysql_select_db($dbase_name, $connection);
mysql_query($update_query, $connection));

これがあなたの問題であるかどうかはわかりません(PHPについてどれだけ知っているかわからないので、言ってみてください)。

また、構文が間違っています。する必要があります:

UPDATE tablename SET column_name='some_value' WHERE column_name ='some_value'

これは、column_nameパラメーターをカバーするものがない上記とは異なることに注意してください。

上記のようにPDOを使用することをお勧めします。mysql_は、PHP5.5未満で「安全に」使用できます。

于 2012-12-28T18:18:56.973 に答える
0
 mysql_select_db("my_db", $con);

 mysql_query("UPDATE Persons SET Age=36
    WHERE FirstName='Peter' AND LastName='Griffin'");
于 2012-12-28T17:51:39.493 に答える
0

最初にクエリ ans を作成し、それを実行/実行する必要があります

$query = "UPDATE table_name
 SET column1=value, column2=value2,...
 WHERE some_column=some_value";

// Perform Query
$result = mysql_query($query);
于 2012-12-28T17:56:36.440 に答える