Я использую MySQL с PHP, и мне нужно сделать что-то вроде этого (псевдокод):
if (sql row exists where username='bob')
{
// do this stuff
}
Я использую MySQL с PHP, и мне нужно сделать что-то вроде этого (псевдокод):
if (sql row exists where username='bob')
{
// do this stuff
}
Если вы используете базу данных mysql, используйте следующее -
$query = "SELECT username from my_table where username='bob'";
$result = mysql_query($query);
if(mysql_num_rows($result) > 0)
{
// row exists. do whatever you would like to do.
}
Если вы хотите использовать PDO (PHP Data Object)
, как предложено alex, используйте следующий код -
$dbh = new PDO("mysql:host=your_host_name;dbname=your_db_name", $user, $pass);
$stmt = $dbh->prepare("SELECT username from my_table where username = ':name'");
$stmt->bindParam(":name", "bob");
$stmt->execute();
if($stmt->rowCount() > 0)
{
// row exists. do whatever you want to do.
}
В ответе Sayem есть самые высокие показатели, но я считаю, что это неверно в отношении PDO.
Из Документы PHP:
Для большинства баз данных PDOStatement:: rowCount() не возвращает количество строк, затронутых оператором SELECT. Вместо этого используйте PDO:: query() для выдачи оператора SELECT COUNT (*) с теми же предикатами, что и ваш запрошенный оператор SELECT, а затем используйте PDOStatement:: fetchColumn(), чтобы получить количество строк, которые будут возвращены.
$sql = "SELECT COUNT(*) FROM fruit WHERE calories > 100";
if ($res = $conn->query($sql)) {
/* Check the number of rows that match the SELECT statement */
if ($res->fetchColumn() > 0) {
/* Issue the real SELECT statement and work with the results */
$sql = "SELECT name FROM fruit WHERE calories > 100";
foreach ($conn->query($sql) as $row) {
print "Name: " . $row['NAME'] . "\n";
}
}
/* No rows matched -- do something else */
else {
print "No rows matched the query.";
}
}
$res = null;
$conn = null;
другой подход
$user = "bob";
$user = mysql_real_escape_string($user);
$result = mysql_query("SELECT COUNT(*) AS num_rows FROM my_table WHERE username='{$user}' LIMIT 1;");
$row = mysql_fetch_array($result);
if($row["num_rows"] > 0){
//user exists
}