反覆出現的問題我有這個問題我與bind_param
有,我不知道發生了什麼事情不對:與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個其他文件放在一起,但由於某種原因,這個文件不斷被打破。我檢查了每個表格,它們都很好(這是上次發生這種問題的原因)。我確信我在一切之前宣佈了我的stmt_init()
(之前也有問題)。我已經在整張表格上印上了echo $_GET['catName']
,所以它正在通過(曾經有過一次問題)。
而且,更抽象的問題,但我一直在使用bind_param是爲了防止SQL注入的最佳方式告知;這真的是我需要的所有安全嗎? (我的意思是,在理性的情況下,我確信有更多的安全性,但這是一個小黃頁類型的網站)。
echo $ mysqli-> error'告訴你什麼? – 2013-02-18 01:15:19
我不熟悉'mysqli',因爲我更喜歡'PDO',但是不應該使用從'prepare'返回的對象作爲stmt對象嗎? – 2013-02-18 01:18:12
@ExplosionPills如果你首先調用'stmt_init()',這是不正確的方法。它似乎並沒有經常使用。 – 2013-02-18 01:19:08