我不想繼續重複相同的選擇查詢,所以我寫了這個函數。但它不工作:爲什麼不是這個簡單的功能工作?
function select($what, $table) {
$query = mysql_query("SELECT $what FROM $table");
}
select(*, products);
我不想繼續重複相同的選擇查詢,所以我寫了這個函數。但它不工作:爲什麼不是這個簡單的功能工作?
function select($what, $table) {
$query = mysql_query("SELECT $what FROM $table");
}
select(*, products);
function select($what, $table) { $what = mysql_real_escape_string($what); $table = mysql_real_escape_string($table); return mysql_query("SELECT '$what' FROM `$table`;"); } $query = select('*', 'products');
爲了調試:
function select($what, $table) { $what = mysql_real_escape_string($what); $table = mysql_real_escape_string($table); $query = mysql_query("SELECT '$what' FROM `$table`;") or die(mysql_error()); return $query; } $query = select('*', 'products');
我完全複製了你的代碼,它仍然不能正常工作,出現此錯誤: Warning:mysql_fetch_assoc()期望參數1是資源,在第22行的C:\ xampp \ htdocs \ shopping_cart \ product.php中給出的布爾值 – Georgy 2010-07-25 04:38:28
這是因爲'mysql_query()'正在返回'false'。 – 2010-07-25 04:39:52
請用mysql_real_escape_string替換addslashes。另請參閱文檔addslashes http://php.net/manual/en/function.addslashes.php -1從我這裏直到你解決這個問題... – 2010-07-25 04:43:53
你需要返回$查詢
function select($what, $table) {
return $query = mysql_query("SELECT $what FROM $table");
}
$query = select(*, products);
然後$查詢將有你的查詢結果,您會再使用mysql_fetch_xxx或任何對結果源。
你的參數應該是字符串(即select('*', 'products')
)
也許是因爲函數結束後$查詢被丟棄?我沒有與SQL太多的經驗,但是這會更好看我說:
function select($what, $table) {
return mysql_query("SELECT $what FROM $table");
}
select("*", "products");
哦,「*」和「產品」必須是字符串。
你應該做的是:
function select($what, $table) {
return mysql_query("SELECT $what FROM `$table`");
}
$query = select('*', 'products');
做您嘗試使用mysql_error()FUNC? – 2010-07-25 04:32:36
這是一個SQL注入噩夢。 – 2010-07-25 04:45:40
@Bill Karwin我總是用mysql_real_escape_string來清理我的輸入我只是沒有寫在這裏:) – Georgy 2010-07-25 04:48:24