2016-12-11 4 views
0

Я пытаюсь найти определенную строку из всей базы данных MySQL, а не только из одной таблицы базы данных и получить данные как объект JSON в приложении для Android.Как искать строку во всей базе данных MySQL?

вот мой PHP файл

<?php 

error_reporting(E_ALL^E_DEPRECATED); 


$con = require("connection.php"); 


if (isset($_POST['submit'])) 
{ 

$username = $_POST['username']; 

$password = $_POST['password']; 

} 


$statement = mysqli_prepare($con, "SELECT * FROM user WHERE username = ? AND password = ?"); 

mysqli_stmt_bind_param($statement,"ss",$username,$password); 
mysqli_stmt_execute($statement); 
mysqli_store_result($statement); 
mysqli_stmt_bind_result($statement,$id,$name,$phone,$email,$username, $password); 

$user = array(); 

while(mysqli_stmt_fetch($statement)){ 
    $user[name]= $name; 

    $user[phone]= $phone; 

    $user[email]= $email; 

    $user[username]= $username; 

    $user[password]= $password; 

} 

echo json_encode($user); 
mysqli_stmt_close($statement); 

mysqli_close($con); 

? 

Но я не хочу искать только в таблице пользователей, а не я хочу, чтобы искать в всей базе данных. пожалуйста помоги.

+2

поэтому укажите каждую таблицу и столбец, который вы хотите найти. –

+1

Это, кажется, сценарий входа. Зачем вам искать имя пользователя и пароль за пределами вашей таблицы пользователей? – Shadow

+2

1. Вы должны добавить кавычки при использовании ассоциативных массивов '$ user ['name']'. 2. Храните ли вы пароли в базе данных в виде незашифрованных текстовых строк? _ Никогда никогда не делайте этого! _ Используйте PHP '' password_hash() ') (http://php.net/manual/en/function.password-hash.php) и [' password_verify() '] (http://php.net/manual/en/function.password-verify.php). Если вы используете версию PHP ниже 5.5, вы можете использовать библиотеку [password_compat library] (https://github.com/ircmaxell/password_compat), чтобы получить такую ​​же функциональность. –

ответ

1

Прямого пути к SELECT из всей базы данных нет. Вместо этого вы можете получить все таблицы из information_schema, как this. Затем вы можете перебрать все таблицы и выполнить поиск в all columns с такими типами столбцов, как например. varchar, текст или другие в зависимости от ваших потребностей.

+0

Предоставление клиенту разрешения на поиск information_schema? Это звучит как ужасная идея. Вы где-то ошиблись? – Takarii

+0

благодарит Лариса Нильсена за ваш ответ, я нашел другой способ сделать это. из SQL-запроса я выберу всю свою таблицу, которая мне нужна ... –

+0

@Takarii,: -S Да, может быть! :-) Я привык работать с виртуальными машинами, поэтому на самом деле только один пользователь имеет доступ к db. –

Смежные вопросы