Mysql
 sql >> база данни >  >> RDS >> Mysql

Проверете дали потребителското име вече съществува с MySQLi

Има някои неща, които се объркат. Не използвайте mysql_real_escape_string защото работите с mysqli_* . Използвайте mysqli_real_escape_string вместо. Но по-добре използвайте mysqli_stmt_bind_param защото работите с подготвени изявления. И ако работите с COUNT(*) винаги получавате 1 ред.

$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);

С COUNT(*) (което е по-ефективно) звучи така:

$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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Показване на JSON набор от данни като таблица с Node.js и Express

  2. MySQL UPDATE с SELECT SUM от различна таблица

  3. MySQL:изберете имейли само от една таблица, ако не е в друга таблица?

  4. В MySQL какви привилегии са необходими за изпълнение на тригер?

  5. Каква е основната грешка зад Неуспешно установяване на връзка с база данни. Проверете низа за връзка, потребителското име и паролата.