Mysql запрос всегда возвращает пустое значение - PullRequest
0 голосов
/ 08 января 2012

Это мой код:

$pass = mysql_query("SELECT `password` FROM acc WHERE account_id = '122' LIMIT 1;");
$p = mysql_fetch_object($pass);
$passwd = ( ( $p->password != "" ) ? $p->password : "empty" );

Затем я делаю echo $passwd;, и он всегда переустанавливает "пустую" строку.

Конечно, строка с account_id122 существует.

Что с этим не так?

Ответы [ 3 ]

0 голосов
/ 08 января 2012

что делать, если вы измените

$passwd = ( ( $p->password != "" ) ? $p->password : "empty" );

на

$passwd = (empty($p->password)) ? $p->password : "empty" );
0 голосов
/ 08 января 2012

Вам не нужна точка с запятой в конце вашего запроса. Почему у вас есть предел 1? acc должен быть уникальным для account_id, так как наличие нескольких паролей для одной и той же учетной записи должно быть невозможным.

$pass = mysql_query("SELECT `password` FROM acc WHERE account_id = '122'");

Как указал @shawn, если ваше account_id действительно число, лучше не полагаться на неявное преобразование символа в число. Хотя на самом деле это не имеет значения, это не очень хорошая практика.

0 голосов
/ 08 января 2012

Попробуйте этот код:

$query = mysql_query("SELECT * FROM `acc` WHERE `account_id`='122'") or die(mysql_error());
while($data=mysql_fetch_object($query)){
$pass = $data->password;
}
echo $pass

Теперь вы сможете получить доступ ко всем полям этой строки, включая поле пароля.

...