Php 为什么这个简单的函数不起作用?

Php 为什么这个简单的函数不起作用?,php,Php,我不想重复相同的select查询,所以我编写了这个函数。但它不起作用: function select($what, $table) { $query = mysql_query("SELECT $what FROM $table"); } select(*, products); 您需要返回$query function select($what, $table) { return $query = mysql_query("SELECT $what FROM $table"

我不想重复相同的select查询,所以我编写了这个函数。但它不起作用:

function select($what, $table) {
    $query = mysql_query("SELECT $what FROM $table");
}
select(*, products);

您需要返回$query

function select($what, $table) {
    return $query = mysql_query("SELECT $what FROM $table");
}
$query = select(*, products);

然后,$query将获得查询的结果源,然后使用mysql\u fetch\u xxx或其他任何工具

您的参数应该是字符串,即选择“*”、“产品”

可能是因为$query在函数结束后被丢弃?我对SQL没有太多经验,但这对我来说会更好:

function select($what, $table) {
    return mysql_query("SELECT $what FROM $table");
}
select("*", "products");
哦,产品需要是字符串

你需要用引号把你的论点括起来。 之后应该返回查询指针。 您应该引用转义值以避免SQL注入。 对于调试:

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'); 你应该做的是:

function select($what, $table) {
    return mysql_query("SELECT $what FROM `$table`");
}
$query = select('*', 'products');

你试过使用mysql\u error func吗?这是SQL注入的噩梦。@Bill Karwin我总是用mysql\u real\u escape\u字符串来清理我的输入,我只是没有写在这里:mysql\u real\u escape\u字符串用于字符串,而不是表名、列名、SQL关键字、表达式等。我完全复制了你的代码,但仍然不起作用,给出此错误:警告:mysql\u fetch\u assoc期望参数1为resource,在第22行的C:\xampp\htdocs\shopping\u cart\product.php中给出布尔值。这是因为mysql\u查询返回false。请用mysql\u real\u escape\u字符串替换addslashes。另请参阅我提供的addslashes-1文档,直到您解决了这一问题……您也不能将表名放在单引号中。现在可以使用:函数select$what,$table{return$query=mysql\u querySELECT$what from$table;}$query=select*,products;
function select($what, $table) {
    return mysql_query("SELECT $what FROM `$table`");
}
$query = select('*', 'products');