-1

私はPHPが初めてで、Androidアプリのバックエンドにのみ使用しています。

Android アプリから PHP に送信する 3 つの文字列があります。「users」というテーブルにクエリを実行し、Android アプリから送信されたユーザー名のユーザー ID を見つけて、そのデータを「msg」という別のテーブルに挿入します。

私は一生懸命努力しましたが、それを機能させることができません。さらに、まだ完了していません。

私は PHP が初めてで、残りのコードを完成させることができないので、ありがとうございます。

PHP:

    <?php

$username = $_POST['username'];
$msg = $_POST['msg'];
$frienduser = $_POST ['frienduser'];

/*mysql data below */ 
$dbc = mysql_connect('localhost', 'removemypasswords', 'again');
if(!dbc) {
die("Something went wrong! Try again...");
}
/* select database */ 
$db_select = mysql_select_db("andagain, $dbc");
if (!db_select){
die("Can't connect :" .mysql_error);
}
$query = mysql_query("SELECT FROM users WHERE usernames ='$usernames'");
$query1 = mysql_query(INSERT INTO  `gtanews1_zips54`.`msg` (
`id` ,
`friendid` ,
`msg`
)
VALUES (
'$query',  '$frienduser',  'msg'
);
echo ($msg);


?>
4

5 に答える 5

0

する必要があります

$query = mysql_query("SELECT * FROM users WHERE usernames ='$username'");
$result = mysql_fetch_array($query);

$query1 = mysql_query("INSERT INTO gtanews1_zips54.msg (id,friendid,msg) VALUES ('" . $result['yourField'] . "', '$frienduser','$msg')");
于 2012-05-25T23:13:19.463 に答える
0

mysqlselectdbコードが間違っています。カンマの前に引用符を付ける必要があります

mysql_select_db( "andagain"、$ dbc);

また、クエリの最後に引用符を配置します

$query = mysql_query("SELECT FROM users  WHERE usernames ='$usernames'"); $query1 = mysql_query(INSERT INTO `gtanews1_zips54`.`msg` ( `id` , `friendid` , `msg` ) VALUES ( '$query', '$frienduser', 'msg' )");
于 2012-05-25T23:13:59.580 に答える
0

ここでは多くの問題が発生しています。

   <?php

$username = $_POST['username'];
$msg = $_POST['msg'];
$frienduser = $_POST ['frienduser'];

/*mysql data below */ 
$dbc = mysql_connect('localhost', 'removemypasswords', 'again');
if(!$dbc) {  //- You forgot the dollar $ sign on $dbc
die("Something went wrong! Try again...");
}
/* select database */ 
$db_select = mysql_select_db("andagain", $dbc);  //- You had the entire thing quoted, quotes are just around "andagain"
if (!db_select){
die("Can't connect :" .mysql_error());  //- You forgot the parentheses after mysql_error  
}
$query = mysql_query("SELECT FROM users WHERE usernames ='$usernames'");
//- You need to actually get the results out of the query object
$row = mysql_fetch_assoc($query);
if (!$row) {
    die('User not found');
}
$user_id = $row['id']; //- Or whatever the column is called
$query1 = mysql_query("INSERT INTO  `gtanews1_zips54`.`msg` (
`id` ,
`friendid` ,
`msg`
)
VALUES (
'$user_id',  '$frienduser',  'msg'
");   //- You forgot to put quotes around this query
echo ($msg);


?>

これはほんの始まりに過ぎません。データベーススキーマ/データ転送形式によっては、他の問題が発生する可能性があります。

また、SQLインジェクションに対しても広くオープンです。

于 2012-05-25T23:14:46.687 に答える
0

コードに多くのエラーがあります。

  1. $ db_select = mysql_select_db(andagain、$ dbc);
  2. $ query = mysql_query('SELECT FROM users WHERE usernames = "$ usernames"');

Stackoverflowはコードのバグを修正するためのコミュニティではないので、私はこの仕事をあなたに任せています。

以下は、すべてのエラーを修正するのに役立ついくつかのポイントです。

  1. 変数置換は一重引用符(')で行うことはできません。二重引用符は変数の置換を許可します。
  2. 引用符内の引用符をエスケープするには、\を使用します
  3. パラメータを二重引用符で囲むことはできません。
于 2012-05-25T23:23:45.753 に答える
0

$query1 のように引用符を付けるのはどうですか

$query1 = mysql_query("INSERT INTO gtanews1_zips54.msg (`id` ,`friendid` ,`msg`)
VALUES ('$query',  '$frienduser',  'msg')");
于 2012-05-25T23:08:57.837 に答える