я думаю, что все это говорит. Результат моего запроса выводится в строку, которая будет соответствовать условию. Я хочу получить каждую информацию из каждого столбца таблицы и поместить в переменную.
$getinfo = "select user_firstname, user_middlename, user_lastname from tempuserinfo where user_email ='$ead' and activation_code='$eac'"; $query = mysql_query($getinfo, $db); if(!$query) { echo'something went wrong.'; } else { //put them into variables $firstname = mysql_fetch_object($query, 'user_firstname'); $middlename = mysql_fetch_object($query, 'user_middlename'); $lastname = mysql_fetch_object($query, 'user_lastname'); }
Если вы получаете несколько результатов, вы можете пропустить их так:
$getinfo = "select user_firstname, user_middlename, user_lastname from tempuserinfo where user_email ='$ead' and activation_code='$eac'"; $query = mysql_query($getinfo, $db); while ($row = mysql_fetch_array($query)) { $firstname = $row['user_firstname']; $lastname = $row['user_lastname']; }
Если вы возвращаете только одну строку (убедитесь, что вы добавили LIMIT в инструкцию SQL), вы можете использовать что-то вроде этого:
$getinfo = "select user_firstname, user_middlename, user_lastname from tempuserinfo where user_email ='$ead' and activation_code='$eac'"; $query = mysql_query($getinfo, $db); $row = mysql_fetch_array($query); $firstname = $row['user_firstname']; $lastname = $row['user_lastname'];
Функция mysql_ * устарела. В документации, рекомендованной как в последних версиях PHP, они будут использовать mysqli_ * или PDO.
Ниже приведен сценарий с использованием mysqli для вашего вопроса:
$mysqli = new mysqli("localhost", "root_user", "root_password", "database"); if (mysqli_connect_errno()) { printf("Connect failed: %s\n", mysqli_connect_error()); exit(); } $getinfo = "select user_firstname, user_middlename, user_lastname from tempuserinfo where user_email ='$ead' and activation_code='$eac'"; if ($result = $mysqli->query($getinfo)) { while ($row = $result->fetch_object()) { $firstname = $row->user_firstname; $middlename = $row->user_middlename; $lastname =$row->user_lastname; } $result->close(); } else { echo'something went wrong.'; }
пример с mysqli, mysql, поскольку это устарело
$sql = "select user_firstname, user_middlename, user_lastname from tempuserinfo where user_email ='$ead' and activation_code='$eac'"; $query = mysqli_query($conn, $sql); while($rs = mysqli_fetch_assoc($query)){ $user_firstname = $rs['user_firstname']; $user_middlename = $rs['user_middlename']; $user_lastname = $rs['user_lastname']; }
если вы хотите иметь все поля, чтобы позже их проконсультироваться, добавьте их в массив
$i=0; while($rs = mysqli_fetch_assoc($query)){ $data[$i] = array('user_firstname'=>$rs['user_firstname'], 'user_middlename'=>$rs['user_middlename'], 'user_lastname'=> $rs['user_lastname']); $i++; } print_r($data);
Это должно работать:
$result = mysql_fetch_object($query); $firstname = $result->user_firstname; $middlename = $result->user_middlename; $lastname = $result->user_lastname;
НО: использование MySQLi или PDO sintead mysql-модуля уже устарело
$dsn = 'mysql:dbname=testdb;host=127.0.0.1'; $user = 'dbuser'; $password = 'dbpass'; try { $dbh = new PDO($dsn, $user, $password); } catch (PDOException $e) { echo 'Connection failed: ' . $e->getMessage(); } try { $sth = $dbh->prepare("select user_firstname, user_middlename, user_lastname from tempuserinfo where user_email = ? and activation_code=?"); $sth->execute(array($ead,$eac)); $row = $sth->fetch(PDO::FETCH_BOTH); $user_firstname = $row['user_firstname']; $user_middlename = $row['user_middlename']; $user_lastname = $row['user_lastname']; } catch (PDOException $e) { echo 'Database operation failed: ' . $e->getMessage(); }
Действительно, научитесь использовать PDO , потому что это так же просто, как использование mysql_ *, но гораздо безопаснее и лучше.