Есть ли способ сохранить результат mysql в переменной php? благодаря
$query = "SELECT username,userid FROM user WHERE username = 'admin' "; $result=$conn->query($query);
то я хочу напечатать выбранный userid из запроса.
Есть конечно. Проверьте mysql_query
и mysql_fetch_row
если вы используете MySQL.
Пример из руководства PHP :
<?php $result = mysql_query("SELECT id,email FROM people WHERE id = '42'"); if (!$result) { echo 'Could not run query: ' . mysql_error(); exit; } $row = mysql_fetch_row($result); echo $row[0]; // 42 echo $row[1]; // the email value ?>
Есть несколько функций mysql, которые вам нужно изучить.
mysql_fetch_array (ресурс, полученный выше): выбирает строку и возвращает как массив с числовыми и ассоциативными (с именем столбца как ключевые) индексы. Как правило, вам нужно выполнить итерацию результатов до того, как выражение примет значение false
. Как показано ниже:
while ($row = mysql_fetch_array($query)){ print_r $row; }
Обратитесь к руководству, ссылки на который приведены ниже, у них есть больше опций для указания формата, в котором запрашивается массив. Например, вы можете использовать mysql_fetch_assoc(..)
чтобы получить строку в ассоциативном массиве.
Ссылки:
В твоем случае,
$query = "SELECT username,userid FROM user WHERE username = 'admin' "; $result=mysql_query($query); if (!$result){ die("BAD!"); } if (mysql_num_rows($result)==1){ $row = mysql_fetch_array($result); echo "user Id: " . $row['userid']; } else{ echo "not found!"; }
$query="SELECT * FROM contacts"; $result=mysql_query($query);
Я лично использую подготовленные заявления.
Почему это важно?
Ну, это важно из-за безопасности. Очень просто сделать SQL-инъекцию для тех, кто использует переменные в запросе.
Вместо использования этого кода:
$query = "SELECT username,userid FROM user WHERE username = 'admin' "; $result=$conn->query($query);
Вы должны использовать это
$stmt = $this->db->query("SELECT * FROM users WHERE username = ? AND password = ?"); $stmt->bind_param("ss", $username, $password); //You need the variables to do something as well. $stmt->execute();
Подробнее о подготовленных отчетах читайте далее:
http://php.net/manual/en/mysqli.quickstart.prepared-statements.php MySQLI
$query = "SELECT username, userid FROM user WHERE username = 'admin' "; $result = $conn->query($query); if (!$result) { echo 'Could not run query: ' . mysql_error(); exit; } $arrayResult = mysql_fetch_array($result); //Now you can access $arrayResult like this $arrayResult['userid']; // output will be userid which will be in database $arrayResult['username']; // output will be admin //Note- userid and username will be column name of user table.