gpt4 book ai didi

php - bind_param、无效对象或资源反复出现问题

转载 作者:行者123 更新时间:2023-11-30 23:22:24 27 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





warning :: invalid object or resource mysqli_stmt. What is the meaning and solution(s)?

(1 个回答)


1年前关闭。




我遇到了 bind_param 遇到的这个问题而且我不知道出了什么问题:

<?php
$mysqli = new mysqli("$host","$user","$pass","$db");
if(isset($_GET['catName'])) {
$category = "%" . $_GET['catName'] . "%";
}

//setup query
$catSearch = $mysqli->stmt_init();

//search values
$catQuery = "SELECT lister_id,
logo_file_name,
listing_name,
street_address,
city,
state,
zip

FROM listers

INNER JOIN listings

ON listers.lister_id = listings.lister_id

WHERE listings.listing_category LIKE ?";

$catSearch->prepare($catQuery);
$catSearch->bind_param('s', $category);
$catSearch->bind_result($id, $imgfile, $name, $address, $city, $state, $zip);
$catSearch->execute();
$catSearch->store_result();
$mainRows = $catSearch->num_rows();
?>

我得到的警告是:
Warning: mysqli_stmt::bind_param(): invalid object or resource mysqli_stmt in C:\wamp\www\RP\catSearch.php on line 29

让我感到沮丧的是,这种精确的语法将 7 或 8 个其他文档放在一起,就像它一样,但由于某种原因,这个语法一直在中断。我检查了每张 table ,它们都很好(这是上次发生这种情况时的问题)。我确定我声明了我的 stmt_init()早于其他一切(之前也有问题)。我有 echo $_GET['catName']印在整张纸上,所以它通过了(曾经也有问题)。

另外,一个更元的问题,但有人告诉我使用 bind_param 是防止 SQL 注入(inject)的最佳方法;这真的是我需要的所有安全吗? (我的意思是,在合理的范围内,我确信安全性更高,但这是一个小型黄页类型的网站)。

最佳答案

好的,感谢@michaelberkoski 和这里另一个页面的一些帮助,我发现了这个问题。因为两个表都包含 lister_id,所以它抛出了一个错误,我将查询更改为:

$catQuery = "SELECT listers.lister_id,
listers.logo_file_name,
listers.listing_name,
listers.street_address,
listers.city,
listers.state,
listers.zip

FROM listers

INNER JOIN listings

ON listers.lister_id = listings.lister_id

WHERE listings.listing_category LIKE ?";

我在哪里添加表格。 (listers.) 到我正在检索的每一列。像魅力一样工作。

关于php - bind_param、无效对象或资源反复出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14928117/

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