gpt4 book ai didi

php - mysqli::query() 期望参数 2 很长,给出字符串

转载 作者:行者123 更新时间:2023-12-04 06:18:41 27 4
gpt4 key购买 nike

我正在创建自定义购物车,我正在构建一个查询,该查询从检索我刚刚保存到购物车表中的 session_id 开始。我知道这个值被保存了,我在 mysql 命令行运行这个查询,它返回我需要的但我没有将值放入 $cart_id。在脚本的这一点上下还有其他 INSERT 查询,所以我知道我连接到数据库就好了。

//Get cart id
$cart_id_select_q = "SELECT c.id FROM carts AS c WHERE c.user_session_id='$uid'";
$cart_id = $mysqli->query($conn, $cart_id_select_q);
echo "<pre>Debug: $cart_id_select_q</pre>";
if ( !$cart_id ) {
printf("error: %s\n", mysqli_error($conn));
}
else {
echo 'get session id from cart: execute success';
print_r($cart_id);
var_dump($cart_id);
}

我也在一个 VPS 服务器上,错误被抑制了不是我没有在浏览器中显示 mysqli_error 但我在我的 error_log 中收到以下 2 个警告。
[29-Jul-2011 09:29:24] PHP Warning:  mysqli::query() expects parameter 2 to be long, string given in /home/sopadmin/public_html/dev/cart.php on line 89
[29-Jul-2011 09:29:24] PHP Warning: mysqli_error() expects parameter 1 to be mysqli, null given in /home/sopadmin/public_html/dev/cart.php on line 92

我也尝试过使用 mysqli_num_rows() 和 fetch_assoc() 但都没有帮助。 $cart_id 仍然为空,我不知道如何在此服务器配置中检索 mysql 错误。在这里发帖是整晚玩弄之后的最后手段。

我应该注意,我才刚刚开始真正使用新的 mysqli 扩展,而且我也开始以更面向对象的方式进行编码。但我通常从程序开始编码,然后在设计布局后创建类。但这只是对我的经验水平的评论,我不明白的是为什么这个查询没有在我的脚本中返回一个 vlue。

最佳答案

使用面向对象的 mysqli API 时,您不需要(实际上您不能)将连接作为第一个参数传递。

此:$cart_id = $mysqli->query($conn, $cart_id_select_q);
应该是:$cart_id = $mysqli->query($cart_id_select_q);
还有这个:printf("error: %s\n", mysqli_error($conn));
应该是:printf("error: %s\n", mysqli->error);
我不知道 $conn 是什么(看起来像一个字符串),但它肯定不是 MySQLi 连接对象。

关于php - mysqli::query() 期望参数 2 很长,给出字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6874841/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com