0

これを機能させることはできません。これを修正する方法の例を示して、正しい方向に私を指摘してください。ありがとうございました。この URL domain.com/script.php?from=1123&message=1234454 が必要です

テーブルにベルを挿入するには

<?php

mysql_connect('localhost', 'user', 'pass');

mysql_select_db('dbname');

$sql = "insert into table (from, message) values ('".$_GET['from']."','".$_GET['message']."')"; 
if(!$sql){ 
echo "Error " . mysql_error(); }
else{ echo "Success"; }

?>
4

3 に答える 3

1

追加してみてください

 mysql_query($sql);

したがって、文字列を作成している瞬間に実際にデータベースに追加されます

于 2012-07-25T18:14:14.723 に答える
0

実際にクエリを実行するためにmysql_query()を呼び出すことはありません。

<?php

mysql_connect('localhost', 'user', 'pass');

mysql_select_db('dbname');

$from    = mysql_real_escape_string($_GET['from']);
$message = mysql_real_escape_string($_GET['message']);

// TODO: check that $from and $message are not empty and are valid

$sql    = "insert into table (from, message) values ('$from','$message')"; 
$result = mysql_query($sql);  // This actually executes the query on the server

if(!$result) { 
    echo "Error " . mysql_error();
} else {
    echo "Success";
}

mysql_real_escape_stringの呼び出しも非常に重要です。これがないと、SQL インジェクションに対して脆弱になります。

また、mysql_*関数は非推奨です。MysqliまたはPDO_Mysqlに切り替える必要があります。

于 2012-07-25T18:13:51.423 に答える
0

まず、変数が設定されているかどうかを確認する必要があります。

    if(isset($_GET['from'],$_GET['message'])){
       $con = mysql_connect('localhost', 'user', 'pass');

       mysql_select_db('dbname',$con);

       $from    = mysql_real_escape_string($_GET['from']);
       $message = mysql_real_escape_string($_GET['message']);

// TODO: check that $from and $message are not empty and are valid

$sql    = "insert into table (from, message) values ('$from','$message')"; 
$result = mysql_query($sql);

if(!$result) {  echo "Error " . mysql_error(); } 
else {  
  echo "Success"; 
  mysql_close($con);
}

}else{die();}
于 2012-07-25T18:17:43.157 に答える