Я пытаюсь сделать несколько запросов, используя подготовленные операторы.
Я получаю количество ошибок связывания параметров:
Warning: mysqli_stmt::bind_param(): Number of variables doesn't match number of parameters in prepared statement in C:\wamp\www\c\index.php on line 35
Строка 35:
$stmt->bind_param('i', $user_id);
Вот общие коды:
Я попробовал несколько примеров, но не смог заставить его работать.
Пример 1:
$stmt->bind_param('i', $id);
// выводим идентификатор из сессии
Пример 2:
$stmt->bind_param('ii',$id, $user_id);
И еще несколько попыток.
$id = $_SESSION['id'];
// значение приходит из сеанса и его полное значение
$stmt = $mysqli->prepare("SELECT users.*, stores.*, products.* FROM stores, products, users WHERE users.id = ? AND stores.user_id = ? AND products.user_id = ?");
$stmt->bind_param('i', $user_id);
$stmt->execute();
$stmt->bind_result($id, $user_id, $pname);
$stmt->fetch();
$stmt->close();
echo $pname;
Когда я делаю запросы в кодах phpmyadmin, он отлично работает на $ sql следующим образом:
$sql = "SELECT users.*, stores.*, products.*\n"
. "FROM stores, products, users\n"
. "WHERE ((users.id) AND (stores.user_id) AND (products.user_id))";
И без php-кода
SELECT users.*, stores.*, products.*
FROM stores, products, users
WHERE ((users.id)
AND (stores.user_id)
AND (products.user_id))
Это ближайший пример:
У меня ошибка:
Warning: mysqli_stmt::bind_result(): Number of bind variables doesn't match number of fields in prepared statement in C:\wamp\www\c\index.php on line 37
Строка 37:
$stmt->bind_result($user_id, $username, $pname);
$id = $_SESSION['id'];
Ближайший код:
$stmt = $mysqli->prepare("SELECT users.*, stores.*, products.* FROM stores, products, users WHERE users.id = stores.user_id AND stores.user_id = products.user_id AND products.user_id = ?");
$stmt->bind_param('i', $id);
$stmt->execute();
$stmt->bind_result($user_id, $username, $pname);
$stmt->fetch();
$stmt->close();
echo $pname;