MYSQL 变量 在 php 查询中
MYSQL variable In php query
我试图在一个查询中查询多个 mysql 语句但失败了。
$testq ="";
$testq .= mysql_query("SET @@group_concat_max_len = 5000");
$testq .= mysql_query("SET @sql = NULL");
$testq .= mysql_query("SELECT GROUP_CONCAT(DISTINCT
CONCAT(
'MAX(IF(property_name = ''',
property_name,
''', value, NULL)) AS ',
property_name
)
) INTO @sql FROM properties");
$testq .= mysql_query("SET @sql = CONCAT('SELECT item_id, ', @sql, ' FROM properties GROUP BY item_id')");
$testq .= mysql_query("PREPARE stmt FROM @sql");
$testq .= mysql_query("EXECUTE stmt");
$da = mysql_query($testq, $dbconnect);
while($rt = mysql_fetch_assoc($da){
//print
}
错误是:警告:mysql_fetch_assoc() 期望参数 1 是资源,C:\Users 中给出的布尔值......第 24 行
我如何执行此查询并在 table 中打印结果?
出于 mysql_query
的安全原因,PHP 中的 MySQL 扩展不支持 PHP 中的多查询。你不应该再使用 MySQL 了,使用 MySQLi.
您应该使用 UNION 或类似的东西来连接查询。如果你只想做一个多查询,你应该在 MySQLi 库中使用 mysqli_multi_query
。
那么语法必须是另一种。查询必须在一个函数中作为一个字符串提交,如下所示:
$mysqli->multi_query("SELECT * FROM table; TRUNCATE table; DROP table;");
我试图在一个查询中查询多个 mysql 语句但失败了。
$testq ="";
$testq .= mysql_query("SET @@group_concat_max_len = 5000");
$testq .= mysql_query("SET @sql = NULL");
$testq .= mysql_query("SELECT GROUP_CONCAT(DISTINCT
CONCAT(
'MAX(IF(property_name = ''',
property_name,
''', value, NULL)) AS ',
property_name
)
) INTO @sql FROM properties");
$testq .= mysql_query("SET @sql = CONCAT('SELECT item_id, ', @sql, ' FROM properties GROUP BY item_id')");
$testq .= mysql_query("PREPARE stmt FROM @sql");
$testq .= mysql_query("EXECUTE stmt");
$da = mysql_query($testq, $dbconnect);
while($rt = mysql_fetch_assoc($da){
//print
}
错误是:警告:mysql_fetch_assoc() 期望参数 1 是资源,C:\Users 中给出的布尔值......第 24 行 我如何执行此查询并在 table 中打印结果?
出于 mysql_query
的安全原因,PHP 中的 MySQL 扩展不支持 PHP 中的多查询。你不应该再使用 MySQL 了,使用 MySQLi.
您应该使用 UNION 或类似的东西来连接查询。如果你只想做一个多查询,你应该在 MySQLi 库中使用 mysqli_multi_query
。
那么语法必须是另一种。查询必须在一个函数中作为一个字符串提交,如下所示:
$mysqli->multi_query("SELECT * FROM table; TRUNCATE table; DROP table;");