Подтвердить что ты не робот

PHP - простой способ чтения одной записи из MySQL

Какой лучший способ с PHP прочитать одну запись из базы данных MySQL? Например:.

SELECT id FROM games

Я пытался найти ответ в старых вопросах, но не повезло.

4b9b3361

Ответ 1

$id = mysql_result(mysql_query("SELECT id FROM games LIMIT 1"),0);

Ответ 2

$link = mysql_connect('localhost','root','yourPassword')
mysql_select_db('database_name', $link);
$sql = 'SELECT id FROM games LIMIT 1';
$result = mysql_query($sql, $link) or die(mysql_error());
$row = mysql_fetch_assoc($result);
print_r($row);

В ответе ChrisAD было мало вещей. После подключения к mysql важно выбрать базу данных, а также оператор die() позволяет видеть ошибки, если они возникают.

Будьте внимательны, если это работает, только если в базе данных есть 1 запись, потому что в противном случае вам нужно добавить WHERE id=xx или что-то подобное, чтобы получить только одну строку и не более. Также вы можете получить доступ к своему id, например $row['id']

Ответ 3

Используя PDO, вы можете сделать что-то вроде этого:

$db = new PDO('mysql:host=hostname;dbname=dbname', 'username', 'password');

$stmt = $db->query('select id from games where ...');
$id = $stmt->fetchColumn(0);
if ($id !== false) {
    echo $id;
}

Вам также следует проверить, выполняет ли PDO::query() запрос OK (либо путем проверки результата, либо указания PDO вместо исключения исключений)

Ответ 4

Предполагая, что вы используете первичный ключ с автоматическим приращением, который является обычным способом выполнения действий, тогда вы можете получить доступ к ключевому значению последней строки, введенной в базу данных, с помощью:

$userID = mysqli_insert_id($link);

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

В любом случае, чтобы ограничить ваш запрос SELECT, используйте оператор WHERE следующим образом: (Общий пример)

$getID = mysqli_fetch_assoc(mysqli_query($link, "SELECT userID FROM users WHERE something = 'unique'"));
$userID = $getID['userID'];

(Конкретный пример) Или более конкретный пример:

$getID = mysqli_fetch_assoc(mysqli_query($link, "SELECT userID FROM users WHERE userID = 1"));
$userID = $getID['userID'];

Ответ 5

Внимание! Ваш SQL не является хорошей идеей, потому что он выберет все строки (предложение WHERE не предполагает "WHERE 1"!) И забивает ваше приложение, если у вас большое количество строк. (Какая точка выбора 1000 строк, когда 1 будет делать?) Поэтому вместо этого, выбирая только одну строку, убедитесь, что вы указываете предложение LIMIT:

$sql = "SELECT id FROM games LIMIT 1";  // Select ONLY one, instead of all
$result = $db->query($sql);
$row = $result->fetch_assoc();
echo 'Game ID: '.$row['id'];

Это различие требует, чтобы MySQL выбирал только первую совпадающую запись, поэтому упорядочение таблицы важно или вы должны использовать предложение WHERE. Тем не менее, это намного меньше памяти и времени, чтобы найти одну запись, чем получить каждую запись и выходную строку номер один.

Ответ 6

Еще один ответ для объектно-ориентированного стиля. Нашел это решение для меня:

$id = $dbh->query("SELECT id FROM mytable WHERE mycolumn = 'foo'")->fetch_object()->id;

возвращает только один идентификатор. Убедитесь, что ваш дизайн гарантирует, что вы получили правильный вариант.

Ответ 7

Используйте LIMIT 1. его легко.

$rows = $db->query("select id from games LIMIT 1");
$row  =  $rows->fetch_object();
echo $row->id;

Ответ 8

Сначала вы подключаетесь к своей базе данных. Затем вы создаете строку запроса. Затем вы запускаете запрос и сохраняете результат, и, наконец, вы выбираете, какие строки вы хотите получить, используя один из методов выборки.

$link = mysql_connect('localhost','root','yourPassword')
mysql_select_db('database',$link);
$sql = 'SELECT id FROM games'
$result = mysql_query($sql,$link);

$singleRow = mysql_fetch_array($result) 
echo $singleRow;

Изменить: извините, забыли соединение с базой данных. Добавлено сейчас

Ответ 9

"Лучший способ" в сторону некоторых обычных способов получения одной записи из базы данных с помощью PHP:

с mysqli

$sql = "SELECT id, name, producer FROM games WHERE user_id = 1";
$result = $db->query($sql);
$row = $result->fetch_row();

с Zend Framework

//Внутри класса таблицы

$select = $this->select()->where('user_id = ?', 1);  
$row = $this->fetchRow($select);

Ответ 10

Самый простой способ - использовать mysql_result. Я скопировал часть кода из других ответов, чтобы сэкономить время.

$link = mysql_connect('localhost','root','yourPassword')
mysql_select_db('database',$link);
$sql = 'SELECT id FROM games'
$result = mysql_query($sql,$link);

$num_rows = mysql_num_rows($result);

// i is the row number and will be 0 through $num_rows-1
for ($i = 0; $i < $num_rows; $i++) {
    $value = mysql_result($result, i, 'id');
    echo 'Row ', i, ': ', $value, "\n";
}

Ответ 11

Мне очень нравится философия библиотека баз данных ezSQL, которая обертывает собственные методы SQL в более простой в использовании интерфейс.

Получение одного значения из базы данных тривиально:

  $id = $db->get_var("SELECT id FROM games WHERE ...");

Это также упрощает выбор одной строки, столбца или набора строк.

Ответ 12

Я согласен с тем, что mysql_result - это простой способ получить содержимое одной ячейки из набора результатов MySQL. Малый код:

$r = mysql_query('SELECT id FROM table') or die(mysql_error());
if (mysql_num_rows($r) > 0) {
    echo mysql_result($r); // will output first ID
    echo mysql_result($r, 1); // will ouput second ID
}

Ответ 13

Этот простой простой

//Read table records
$show = mysqli_query($link,"SELECT * FROM table_name");
while($row = @mysqli_fetch_object($show))
{
//Read a row/record
echo $row->FIELD1."<br>";
echo $row->FIELD2."<br>";
echo $row->FIELD3."<br><hr>";
}

Ответ 14

Простой способ получить одиночную запись из базы данных MySQL с помощью списка PHP

SQL Query SELECT user_name from user_table WHERE user_id = 6

Код PHP для вышеуказанного запроса

$sql_select = "";
$sql_select .= "SELECT ";
$sql_select .= "  user_name ";
$sql_select .= "FROM user_table ";
$sql_select .= "WHERE user_id = 6" ;

$rs_id = mysql_query($sql_select, $link) or die(mysql_error());
list($userName) = mysql_fetch_row($rs_id);

Примечание. Концепция списка должна применяться для однократной выборки не для нескольких строк

Ответ 15

Лучше, если SQL будет оптимизирован с добавлением LIMIT 1 в конце:

$query = "select id from games LIMIT 1";


SO ANSWER IS (работает на php 5.6.3):

Если вы хотите получить первый элемент первой строки (даже если это не столбец идентификатора):

queryExec($query) -> fetch_array()[0];

Если вы хотите получить первую строку (отдельный элемент из БД)

queryExec($query) -> fetch_assoc();

Если вам нужен какой-то точный столбец из первой строки

queryExec($query) -> fetch_assoc()['columnName'];

или нужно исправить запрос и использовать первый письменный способ:)

Ответ 16

$db = new mysqli('localhost', 'tmp', 'tmp', 'your_db');  
$db->set_charset('utf8');
if ($db->connect_errno)
    throw new Exception('MySQL: ('.$db->connect_errno.') '.$db->connect_error);

if ($row = $db->query("SELECT id FROM games LIMIT 1")->fetch_row()) //NULL or array
    $id = $row[0];

Ответ 17

Скажите, что вы хотите подсчитать строки в существующей таблице:

Используйте mysql_result только с одним параметром, установленным в "0".

Вот так:

$string = mysql_result (
        mysql_query (" SELECT COUNT (*) FROM database_name. table_name ")
, 0);

ps.put(`) вокруг имени_базы_данных и табличного_имя

var_dump ($ string);

//string (1) "5" // если в таблице всего 5 записей

Примечание: если вы запрашиваете еще что-то вроде

SELECT * FROM database.table LIMIT 1

и таблица имеет более одного столбца, тогда вы НЕ получите array() в своем var_dump, вы получите только первый столбец

Ответ 18

function getSingleRow($table, $where_clause="", $column=" * ",$debug=0) {
    $SelectQuery = createQuery($table, $where_clause, $column);

    $result = executeQuery($SelectQuery,$debug);
    while($row = mysql_fetch_array($result)) {
        $row_val = $row;
    }
    return $row_val;
}

Ответ 19

$results = $mysqli->query("SELECT product_code, product_name, product_desc, product_img_name, price FROM products WHERE id = 1");

Ответ 20

Я мог бы получить результат, используя следующее:

$resu = mysqli_fetch_assoc(mysqli_query($conn, "SELECT * FROM employees1 WHERE pkint =58"));
echo ( "<br />". $resu['pkint']). "<br />" . $resu['f1'] . "<br />" . $resu['f2']. "<br />" . $resu['f3']. "<br />" . $resu['f4' ];

employee 1 - имя таблицы. pkint - это первичный ключ. f1, f2, f3, f4 - имена полей. $resu - это ярлык переменной для результата. Ниже приведен вывод:

<br />58
<br />Caroline
<br />Smith
<br />Zandu Balm

Ответ 21

$username=$_POST['username'];
$password=$_POST['password'];
$SQL = "SELECT * FROM user where user_name ='".$username."' AND password = '".$password."'";
$result = mysql_query($SQL);
if($result === FALSE) {
die(mysql_error()); // TODO: better error handling
}
$result = mysql_fetch_assoc($result);
$user_id = $result['user_id'];
echo $user_id;