Te aclaro los detalles:
1) Yo sólo te estoy diciendo
cómo se crea una variable de usuario en MySQL, no
qué quieres cargar en ella. Eso es tu decisión. Si quieres poner una letra, una cadena, un número, para el caso es igual y dependerá de lo que necesites poner en esa variable.
2)
Las variables de usuario no se declaran, se inicializan. Se pueden usar sin inicializar, pero entonces su valor es NULL,
por eso se debe asignar un valor antes de usarlas, aunque más no sea para definir el tipo de datos que manejarán. Sólo se declaran las variables locales de los stored procedures, functions y triggers,
pero esas no llevan "@" y no se pueden usar fuera de esas rutinas.
3) Si vas a usar el valor, como en cualquier lenguaje, debes cargar la variable
antes, de lo contrario el valor
no existirá. En dónde lo pongas en tu script PHP dependerá de tí. Yo te sugerí dos opciones prácticas, el resto dependerá de la lógica de tu programación. Por eso mi sugerencia es hacerlo después de abrir la conexión.
4) Ten en cuenta que las variables de usuario
dependen del subproceso de conexión,
mueren al cerrarse la misma. Mientras tanto conservan el valor que se les asigne la última vez (esto permite hacer consultas con un grado de dinamismo notable).
5) SET,
dentro de otras sentencias es
cláusula, fuera de toda sentencia es
sentencia porque los
contextos son distintos, y como tal se usa en los scripts de PHP: como otra sentencia más de SQL, pero sólo para las variables de usuario.
Si quieres ver algunos usos de las variables de usuario, lee las FAQs de MySQL:
¿Cómo numerar secuencialmente una consulta, sin usar PK?