At-Sign en la instrucción SQL antes del nombre de columna
Tengo una instrucción INSERT en un archivo PHP en el que los signos at (@) están ocurriendo delante del nombre de la columna.
@ field1, @ field2,
Es una base de datos MySQL. ¿Qué significa el signo de signo?
Editar
No haySET @field1 := 'test'
en el script PHP. El script PHP lee un csv y coloca los datos en la tabla. ¿Se puede usar incorrectamente como una función para comentar?
<?php
$typo_db_username = 'xyz'; // Modified or inserted by TYPO3 Install Tool.
$typo_db_password = 'xyz'; // Modified or inserted by TYPO3 Install Tool.
// login
$_SESSION['host'] = "localhost";
$_SESSION['port'] = "3306";
$_SESSION['user'] = $typo_db_username;
$_SESSION['password'] = $typo_db_password;
$_SESSION['dbname'] = "database";
$cxn = mysqli_connect($_SESSION['host'], $_SESSION['user'], $_SESSION['password'], $_SESSION['dbname'], $_SESSION['port']) or die ("SQL Error:" . mysqli_connect_error() );
mysqli_query($cxn, "SET NAMES utf8");
$sqltrunc = "TRUNCATE TABLE tablename";
$resulttrunc = mysqli_query($cxn,$sqltrunc) or die ("Couldn’t execute query: ".mysqli_error($cxn));
$sql1 = "
LOAD DATA LOCAL
INFILE 'import.csv'
REPLACE
INTO TABLE tablename
FIELDS
TERMINATED BY ';'
OPTIONALLY ENCLOSED BY '\"'
IGNORE 1 LINES
(
`normalField`,
@field1,
@field2,
`normalField2`,
@field3,
@field4
)";
$result1 = mysqli_query($cxn,$sql1) or die ("Couldn’t execute query: " . mysqli_error($cxn));
?>'
SOLUCIÓ:
Finalmente, ¡lo descubrí! El campo @ se usa como ficticio para omitir una columna en un archivo csv. Verhttp: //www.php-resource.de/forum/showthread/t-97082.htm http://dev.mysql.com/doc/refman/5.0/en/load-data.htm