2012-05-25 2 views
-1

Я новичок в PHP и использую его только для бэкэнда моего приложения для Android.SQL Query не работает и вопросы PHP

У меня есть три строки, которые я отправляю на PHP из своего приложения для Android. Я хочу запросить таблицу под названием «пользователи» и найти идентификатор пользователя, имя которого было отправлено из моего приложения Android, а затем вставить данные в отдельную таблицу под названием «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); 


?> 
+0

Не могли бы вы рассказать нам об ошибке? – Anas

+1

первым запросом должен быть 'SELECT *' (выбрать все) или имя поля, которое вы пытаетесь получить – Ronnie

+0

Здесь нет вопросов. – PeeHaa

ответ

0

как о вводе в кавычки $ Query1 как

$query1 = mysql_query("INSERT INTO gtanews1_zips54.msg (`id` ,`friendid` ,`msg`) 
VALUES ('$query', '$frienduser', 'msg')"); 
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')"); 
+0

Спасибо, я попробую. – TheBlueCat

0

код MySQL выберите дб неправильно. вам нужно иметь котировки перед запятой

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')"); 
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-инъекций.

+0

Как я могу запретить SQL-инъекцию? Я не уверен, если дело, я получаю данные из приложения для Android. – TheBlueCat

+0

Любой может отправить HTTP-запрос на этот скрипт и делать все, что они хотят с вашей базой данных. Основной метод - использовать 'mysql_real_escape_string()' для любой строки, которую вы собираетесь поставить в запрос ('intval()' для ints); лучшим методом является использование библиотеки mysqli и создание подготовленных операторов. –

0

ваш код имеет много ошибок.

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

так Stackoverflow не сообщество для фиксации кодов ошибок ..so я уезжаю эту работу за вас.

Ниже приведены некоторые моменты, которые могут помочь вам исправить все ошибки?

  1. Переменная-замена не может быть с одинарными кавычками ('). двойные кавычки допускают замену переменных.
  2. Чтобы избежать котировок внутри кавычек, мы используем параметр \
  3. не может быть заключен в двойные кавычки.
+0

Спасибо, я новичок в PHP и до сих пор все еще борюсь с кодом по сравнению с C & Java. – TheBlueCat