функция bind_param ничего не делает - PullRequest
0 голосов
/ 11 июля 2020

Я пытаюсь использовать mysqli prepare и bind_param, но это не работает. Функция bind_param ничего не делает, не возвращает никаких ошибок и приостанавливает выполнение остальных моих кодов. Мои коды следующие:

$set = mysqli_fetch_array($sett);
$vxemail = $_SESSION['email'];
$profv = $flash->prepare("SELECT * FROM `user` WHERE `email`=:em");
$profv->bind_param(':em',$vxemail);

Ответы [ 2 ]

1 голос
/ 11 июля 2020

Если вам нужны именованные параметры запроса, например :em, тогда вы должны использовать PDO , а не mysqli.

PDO поддерживает как заполнители именованных параметров, так и заполнители позиционных параметров. Это удобно, потому что некоторые базы данных, такие как Oracle, обычно поддерживают только именованные заполнители, а MySQL поддерживает только позиционные заполнители. PDO прозрачно транслирует один стиль в другой, поэтому вы можете использовать оба.

(Просто не смешивайте разные типы заполнителей в одном запросе. Выберите тот или иной стиль.) Я предпочитаю PDO по таким причинам. У него много хороших функций, которые делают его лучше, чем Mysqli.

0 голосов
/ 11 июля 2020

используйте этот код

$set = mysqli_fetch_array($sett);
$vxemail = $_SESSION['email'];
$profv = $flash->prepare("SELECT * FROM user WHERE email=?");
$profv->bind_param('s', $vxemail);

bind_param принимает первый тип параметра, а затем переданные данные. например:

$profv->bind_param('ssid', $name, $lastname, $age, $amount);

s = строка, i = целое число, d = double

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...