2012-04-21 12 views
6

He estado repasando esto durante un par de días y simplemente no puedo encontrar la razón por la que está fallando. No recibo una advertencia php, solo el controlador de errores "algo salió mal" en lugar de insertar. Sé que los buenos muchachos aquí probablemente lo detectarán en unos segundos, especialmente considerando que es solo una simple declaración insertada, pero estoy enloquecido. Gracias por adelantado.Declaración de inserción de Mysqli

include('core.inc.php'); 
$sql = 'INSERT INTO $resultsTable (
    id, 
    firstName, 
    lastName, 
    email, 
    birthday, 
    anniversary, 
    location, 
    campaign 
) 
VALUES (NULL,?,?,?,?,?,?,?)'; 
$stmt = $mysql->stmt_init(); 
if ($stmt->prepare($sql)) { 
// bind parameters and execute statement 
$stmt->bind_param(
    'sssssss', 
    $_POST['fname'], 
    $_POST['lname'], 
    $_POST['email'], 
    $_POST['birthday'], 
    $_POST['anniversary'], 
    $_POST['location'], 
    $campaign 
); 

$OK = $stmt->execute();} 
// return if successful or display error 
    if ($OK) {$response = "Success";} 
    else {$response ="Something went wrong.";} 
} 
+0

¿Has probado echoing 'mysqli_error()'? http://php.net/manual/en/mysqli.error.php –

+0

¿De dónde viene '$ mysql'? ¿Eso está definido en 'core.inc.php'? –

+0

'echo $ stmt-> error' –

Respuesta

3

i bien hizo eco de error de stmt y me dijeron que $ resultsTable aún no ha existe. En core.inc, tengo una definición para esa variable

Use concatenación o comillas dobles.

$sql = 'INSERT INTO ' . $resultsTable . ' (
    id, 
    firstName, 
    lastName, 
    email, 
    birthday, 
    anniversary, 
    location, 
    campaign 
) 
VALUES (NULL,?,?,?,?,?,?,?)'; 


$sql = "INSERT INTO $resultsTable (
    id, 
    firstName, 
    lastName, 
    email, 
    birthday, 
    anniversary, 
    location, 
    campaign 
) 
VALUES (NULL,?,?,?,?,?,?,?)"; 
+0

bien, ¡ahora veo gracias! –

Cuestiones relacionadas