PHP / MYSQL: получение значения из первичного столбца - PullRequest
1 голос
/ 25 февраля 2011

У меня есть скрипт, в котором я просто пытаюсь вернуть информацию, когда я отправляю id через ajax в php скрипт, запрашиваю БД и возвращаю имя, связанное с id.

Вот php:

$userId = $_REQUEST['id'];
// Make a MySQL Connection
require('/php/dbconnect.php');

$sql="SELECT * FROM member WHERE id='".$userId."'";

$result = mysql_query($sql) or die(mysql_error());
$returnJson = '{';
while ($row = mysql_fetch_array($result)) {
    $returnJson .= 'userName: "' . $row['userName'] . '"';
}

$returnJson .= '}';
echo $returnJson;

У меня есть 2 записи в таблице участников. Основными идентификаторами являются 1 и 2. Когда я запрашиваю эту страницу через ajax и передаю 1 или 2 в качестве параметра «id», я не получаю имя обратно.

Все, что возвращается, это "{}";

Я знаю, что все работает во внешнем интерфейсе, потому что я, по крайней мере, получаю "{}" назад.

Я проверил, есть ли в БД столбец с именем «userName». Я также знаю, что мое соединение с БД работает так, как не возвращаются ошибки mysql, и (используя тот же сценарий подключения БД) я могу записать в таблицу членов просто отлично.

Любые идеи, почему это ничего не возвращает.

Ответы [ 4 ]

1 голос
/ 25 февраля 2011

3 вещи:

  1. Не используйте запрос.Используйте $ _GET или $ _POST
  2. NeverNEVERNVNERNVNER поместите переменную прямо в SQL-запрос, подобный этому.Если вы не собираетесь использовать PDO и подготовленные операторы , убедитесь, что вы экранировали свои переменные
  3. И ту часть, которая может быть ответом ... Попробуйте непомещая кавычки вокруг переменной, я верю в более новые версии mysql, которые вы можете, но в более старых версиях, если вы помещаете кавычки вокруг чего-то, что было целочисленным полем, оно не будет работать правильно.

    $sql="SELECT * FROM member WHERE id=" . mysql_real_escape_string($userId);
    
0 голосов
/ 25 февраля 2011

Возвращаемое значение только {} говорит мне, что ваш цикл даже не выполняется, поэтому он не находит никаких результатов. Я бы попробовал отобразить вашу переменную $ sql, скопировать / вставить ее в ваш sql и посмотреть, что она выплевывает.

0 голосов
/ 25 февраля 2011
$sql='SELECT * FROM member WHERE id=' . intval($userId);
0 голосов
/ 25 февраля 2011

Является ли id столбца строковым или целочисленным типом?Если это целое число, вы должны взять одинарные кавычки из строки запроса.Это может быть вашей проблемой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...