Ho una domanda, voglio scriverla in php ma mostra l'errore.
La mia domanda è come di seguito:
$exe1 = mysql_query("
SELECT
GROUP_CONCAT(DISTINCT
CONCAT(
"SUM(CASE WHEN `size_name` = """,
`size_name`,
""" THEN Quantity ELSE 0 END) AS `",
`size_name`, "`"
)
) INTO @sql
FROM Size;
SET @sql = CONCAT("SELECT st.Style , ", @sql, "
FROM Size s
JOIN Style st ON s.style_id = st.id
GROUP BY st.Style
");
PREPARE stmt FROM @sql;
EXECUTE stmt;") or die(mysql_error());
Ma sta mostrando il messaggio
Si è verificato un errore nella sintassi SQL; controlla ilmanuale che corrisponde alla versione del server MySQL per la sintassi corretta da utilizzare vicino a "SET @sql = CONCAT (" SELECT st.Style, ", @sql," FROM Size s "a linea 12
Non so proprio come risolvere questo errore. Qualcuno può aiutarmi per favore a risolvere questo problema?
risposte:
0 per risposta № 1È necessario stampare la query risultante in @sql
per vedere il problema.
Nel tuo caso, sembreresti avere una virgola in più dopo l'ultimo argomento. Prova a cambiare la linea:
SET @sql = CONCAT("SELECT st.Style , ", @sql, "
FROM Size s
JOIN Style st ON s.style_id = st.id
GROUP BY st.Style
");
a:
SET @sql = CONCAT("SELECT st.Style , ", @sql"
FROM Size s
JOIN Style st ON s.style_id = st.id
GROUP BY st.Style
");
0 per risposta № 2
mysql_query non supporta più query.
http://php.net/manual/en/function.mysql-query.php
Le funzioni mysql_ * sono obsolete e verranno eliminate. Ti consiglio di usare le funzioni mysqli_ * o DOP.