C9 — Как получить результат запроса и как получить количество строк из запроса?

Я написал эту функцию, которая получает имя пользователя и должна проверить, есть ли пользователь в БД.

Это мой код:

 $conn = new mysqli($servername, $username, $password, $database, $dbport);
mysql_select_db("myDB",$conn);
//$sql="CALL checkIfExsist(".$name.")";
$sql = "select * from Users where userName='".$name."' LIMIT 1;";
$myData = $conn-> query($sql);
$rowc = mysqli_num_rows($myData);
printf("Result set has %d rows.\n", $rowc);
if($rowc > 0)
{
echo "User ".$name." checked";

}
else
echo "not exsist";

Когда я запускаю этот запрос в терминале, я получаю 1 результат строки, но в итоге я получаю: «В наборе результатов 0 строк».

В чем проблема?

1

Решение

Я думаю, вам нужно изменить код подключения. пожалуйста, посмотрите и попробуйте этим способом

<?php

define("DB_HOST", "db_host");
define("DB_USER", "db_user");
define("DB_PASSWORD", "db_pass");
define("DB_DATABASE", "db_name");
$conn= mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD,DB_DATABASE );

$sql = "select * from Users where userName='".$name."' LIMIT 1;";
$myData = $conn->query($sql);
$rowc = mysqli_num_rows($myData);
printf("Result set has %d rows.\n", $rowc);
if($rowc > 0)
{
echo "User ".$name." checked";

}
else
echo "not exsist";
0

Другие решения

ты пробовал $rowc = $myData->num_rows;

0

Вы должны использовать mysqli_ вместо mysql_ как mysql_ устарела.

во первых вижу проблему 🙁 вы смешиваете mysql_ и mysqli_ )

Ваше соединение MySQL:

mysql_select_db("myDB",$conn);

Изменить на:

   $conn=mysqli_connect("localhost","my_user","my_password","my_db");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

Вы также должны использовать подготовленные заявления:

$stmt = $mysqli->prepare('SELECT * FROM Users WHERE userName = ?')
$stmt->bind_param('s', $username);
if(!$stmt->execute()){
trigger_error("there was an error....".$mysqli->error, E_USER_WARNING);
}
$stmt->store_result();

Тогда, конечно, ваше заявление if:

     if ($stmt->num_rows > 0){
echo "User ".$name." checked";
}else
echo"User doesn't exist"
0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector