0

同じデータベース内の2つの異なるテーブルにデータを挿入しようとしていますが、1つのデータベースに挿入しようとすると機能しますが、2番目のクエリをコード($desc_query)に挿入すると、テーブルは更新されません。

これが私のコードです:

    $name= strip_tags($_POST['name']);
    $l_name= strip_tags($_POST['last_name']);

    $c_id = strip_tags($_POST['company_id']);
    $a_d = strip_tags($_POST['add_description']);
    $d_t = strip_tags($_POST['desc_text']);

$connect = mysql_connect('localhost','id','pass') or die ("couldn't connect!"); 

mysql_select_db('database_db') or die('could not connect to database!');   

//inserting names

$job_query=mysql_query("INSERT INTO names VALUES ('', '$name', '$l_name')");

    //inserting a new description if needed. (this is the part that ruins everything)
if($a_d == 'true'){
    $desc_query=mysql_query("INSERT INTO descriptions VALUES ('','$c_id','$d_t')");
}
4

2 に答える 2

1

一部の文字('や"など)がSQLクエリを壊しているという問題が発生している可能性があります(SQLインジェクション攻撃に対してアプリケーションを開くことは言うまでもありません)。

次のように、ユーザーが提供したすべてのデータをサニタイズすることをお勧めします。

$name = mysql_real_escape_string(strip_tags($_POST['name']), $connect);
$l_name = mysql_real_escape_string(strip_tags($_POST['last_name']), $connect);
...
$d_t = mysql_real_escape_string(strip_tags($_POST['desc_text']), $connect);

ユーザーがSQLを破壊する可能性のある(または破壊しない可能性のある)奇妙なまたは悪意のあるものを入力しようとしていることを常に想定して操作してください。

于 2012-04-20T22:10:01.487 に答える
0

クエリをエコーアウトして、データベースで直接実行しようとしましたか?

データベースに関するこれ以上の情報がなければ、クエリ自体が有効かどうかを実際に判断することはできません。

于 2012-04-20T22:01:47.543 に答える