У меня есть таблица с одной строкой, называемой пользователями в моей базе данных с электронной почтой и номером mobile_number, как и в столбцах. Моя строка имеет это значение столбца номер_собрания как 9866163987. Когда я пытаюсь выбрать этот мобильный числовое значение мой подготовленный оператор возвращает 0 строк. Вот мой код.Подготовленный оператор в php возвращает 0 строк
if($this->checkExists("email",$_POST["registerEmail"]))
{
--some code--
}
if($this->checkExists("mobile_number",$_POST["registerMobileNumber"]))
{
--some code--
}
private function checkExists($field,$value)
{
include("includes/connection.php");
$sql = "SELECT $field FROM users WHERE $field=:value";
$prepare = $connection->prepare($sql);
$prepare->bindParam(":value",$value,PDO::PARAM_STR);
try
{
$prepare->execute();
}
catch(PDOException $e)
{
die($e->getMessage());
}
$count = count($prepare->fetchAll());
echo $count."<br />";
if($count == 1)
{
return true;
}
else
{
return false;
}
}
Для электронной почты он работает нормально и возвращение на одну строку, но для MOBILE_NUMBER она возвращается 0 строк? Что делать?
Проверьте фактическое значение '$ value', чтобы увидеть, имеет ли смысл смысл ввода. Возможно, значение было опубликовано неправильно. Или он опубликован отлично, но это просто число, которое ничего не соответствует в базе данных. – GolezTrol
спасибо за ваше предложение. Я проверил мою базу данных. Это именно то, что вы сказали. Несоблюдение значений. Но проблема в том, что я вставляю 9866163987, но в базу данных добавляется другое значение 2147483647. Что делать ??? –
Вы представляете номер мобильного телефона как int? Похоже, вы столкнулись с проблемой переполнения целых чисел. Попробуйте изменить столбец на CHAR (10). Правильное значение, которое вы сохраняете в этой точке. – keelerm