Я использую следующий код, который не работает для меня.
$con=mysqli_connect("localhost","root","","my_db"); $check="SELECT COUNT(*) FROM persons WHERE Email = '$_POST[eMailTxt]'"; if (mysqli_query($con,$check)>=1) { echo "User Already in Exists<br/>"; } else { $newUser="INSERT INTO persons(Email,FirstName,LastName,PassWord) values('$_POST[eMailTxt]','$_POST[NameTxt]','$_POST[LnameTxt]','$_POST[passWordTxt]')"; if (mysqli_query($con,$newUser)) { echo "You are now registered<br/>"; } else { echo "Error adding user in database<br/>"; } }
Объект класса mysqli_result не может быть преобразован в int в C: \ xampp \ htdocs \ Exp \ welcome.php
этот код отлично подходит для вас …
$con=mysqli_connect("localhost","root","","my_db"); $check="SELECT * FROM persons WHERE Email = '$_POST[eMailTxt]'"; $rs = mysqli_query($con,$check); $data = mysqli_fetch_array($rs, MYSQLI_NUM); if($data[0] > 1) { echo "User Already in Exists<br/>"; } else { $newUser="INSERT INTO persons(Email,FirstName,LastName,PassWord) values('$_POST[eMailTxt]','$_POST[NameTxt]','$_POST[LnameTxt]','$_POST[passWordTxt]')"; if (mysqli_query($con,$newUser)) { echo "You are now registered<br/>"; } else { echo "Error adding user in database<br/>"; } }
Функция mysqli_query
возвращает дескриптор mysqli_query
результатов. Затем вам нужно прочитать строки из него:
$rs = mysqli_query($con,$check); $data = mysqli_fetch_array($rs, MYSQLI_NUM); if($data[0] > 1) { //user exists; }
Также обратите внимание, что SELECT count(1) FROM ...
будет быстрее, чем SELECT count(*) FROM ...
Вы не увидите большой разницы в небольшом столе, но с большой таблицей в несколько сотен тысяч строк, разница может быть значительной.
mysqli_query
возвращает объект mysqli_result
. Вместо того, чтобы сравнивать это с целым числом, попробуйте использовать num_rows
:
$res = mysqli_query($con,$check); if($res->num_rows){ //User exists }
Изменить: вышеприведенное предположение заключалось в использовании SELECT *
и это не будет работать с SELECT COUNT(*)
. Оформить ответ Алекс G.
Вы можете попробовать следующий код:
$query_code = "SELECT COUNT(itemCode) FROM masterData WHERE itemCode='{$itemCode}'"; $result_login = mysqli_query($conn,$query_code); $anything_found = mysqli_num_rows($result_login); if($anything_found > 0) { $formOk = false; echo "ITEM CODE ALREADY EXISTS! Please try again."; }