कुछ चीजें गलत हो रही हैं। 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