У меня возникли проблемы с преобразованием моего кода из sql в mysqli. $ XX может быть 1 или 0. Когда $ XX = 1, я хочу его найти. Когда $ XX = 0, не должно быть поиска $ XX. То же самое для $ YY.Преобразование sql в mysqli_prepare с переменными переменными
Старый код
$sql = "SELECT name FROM tabel WHERE 1=1";
if (!empty($XX)) {$sql .= " AND XX = 1 ";}
if (!empty($YY)) {$sql .= " AND YY = 1 ";}
Когда $ XX = 1 и $ YY = 1, то код будет выглядеть следующим образом:
$sql = "SELECT name FROM tabel WHERE 1=1 AND XX = 1 AND YY = 1";
When $ XX = 0 и $ YY = 1, код будет выглядеть так:
$sql = "SELECT name FROM tabel WHERE 1=1 AND YY = 1";
Когда $ XX = 0 и $ YY = 0, то код будет выглядеть так:
$sql = "SELECT name FROM tabel WHERE 1=1";
«Проблема» в том, что я не хочу искать XX = 0, потому что это исключает все ответы XX = 1. Когда XX = 0, он не должен искать XX.
Новый код
$stmt = mysqli_prepare($link, "SELECT name FROM tabel WHERE XX=? and YY=?");
mysqli_stmt_bind_param($stmt, "ii", $XX, $YY);
Кто знает, как код MySQLi должен выглядеть? Благодаря!
является xx или yy пользовательский ввод? – Ali
@Chosen Wann Да, как $ XX, так и $ YY - пользовательский ввод. – Helena
Преобразуйте свой код в PDO, и у вас будет гораздо меньше проблем. –