$sql = "SELECT * FROM table WHERE id LIKE CONCAT('%', :id, '%')
LIMIT :limit1, :limit2";
Run Code Online (Sandbox Code Playgroud)
我想仍然像这样使用数组输入:
$stmt->execute($array);
Run Code Online (Sandbox Code Playgroud)
否则我不能重复使用相同的方法来执行我的查询.
同时,:limit1和:limit2不起作用,除非它像这样输入:
$stmt->bindParam(':limit1', $limit1, PDO::PARAM_INT);
Run Code Online (Sandbox Code Playgroud)
我试图做两个但它不使用bindParams执行:
$stmt->bindParam(':limit2', $limit2, PDO::PARAM_INT);
$stmt->execute($array);
Run Code Online (Sandbox Code Playgroud)
它的方法是什么?
我以为我可以扩展PDOStatement并添加一个新方法"bindLimit"或其他东西,但我无法弄清楚PDO使用什么内部方法将参数绑定到变量.
我从这里听到了答案,但它对我不起作用:
即使在浏览器关闭后仍可以保持会话吗?
这是我试过的代码:
$session_life = 2592000; // 30 days
session_set_cookie_params($session_life);
session_name('my_cart');
session_start();
// update the session_life
setcookie(session_name(),session_id(),time()+$session_life);
Run Code Online (Sandbox Code Playgroud)
这个问题是,每次浏览器关闭时,我仍然会得到一个新的session_id,而不是旧的.
我使用数据库将项目存储在'my_cart'中,而session_id仅用于识别用户以向他们展示自己的购物车.
让我的用户购物车保持30天的最佳方式是什么?
这是我最终得到的代码:
$cart_name = "my_cart";
$cart_life = 2592000; // 30 days
session_start();
if (isset($_COOKIE[$cart_name])) {
session_id($_COOKIE[$cart_name]);
}
setcookie($cart_name, session_id(), time()+$cart_life);
Run Code Online (Sandbox Code Playgroud)