sql >> Database teknologi >  >> RDS >> Mysql

Tjek om brugernavnet allerede eksisterer med MySQLi

Der er nogle ting, der går galt. Brug ikke mysql_real_escape_string fordi du arbejder med mysqli_* . Brug mysqli_real_escape_string i stedet. Men bedre brug mysqli_stmt_bind_param fordi du arbejder med forberedte udsagn. Og hvis du arbejder med COUNT(*) du får altid 1 række.

$pseudo = $_POST['pseudo'];
$mail = $_POST['mail'];

$query = "SELECT * FROM t_people WHERE PEO_PSEUDO = ? OR PEO_MAIL = ? LIMIT 1";
$stmt = mysqli_prepare($sql, $query);
mysqli_stmt_bind_param($stmt, 'ss', $pseudo, $mail);
mysqli_stmt_execute($stmt);
mysqli_stmt_store_result($stmt);
$numRows = mysqli_stmt_num_rows($stmt);
mysqli_stmt_close($stmt);

Med COUNT(*) (hvilket er mere effektivt) det lyder sådan:

$query = "SELECT COUNT(*) as numrows FROM t_people WHERE PEO_PSEUDO = ? OR PEO_MAIL = ?";
...
mysqli_stmt_execute($stmt);
mysqli_stmt_bind_result($stmt, $numRows);
mysqli_stmt_fetch($stmt);
mysqli_stmt_close($stmt);

// work with $numRows


  1. FEJL:Relationssteder findes ikke Heroku db import

  2. Flere rangeringer i én tabel

  3. JSON_OBJECT() Funktion i Oracle

  4. XAMPP/MySQL:kunne ikke åbne single-table tablespace-filen .\mysql\innodb_index_stats.ibd efter genstart af MySQL