Я проходил через это пару дней, и я просто не могу найти причину ошибки. Я не получаю php-предупреждение, просто обработчик ошибок «somethign пошел не так» вместо того, чтобы вставлять. Я знаю, что прекрасные молодые ребята здесь, вероятно, заметят это через несколько секунд, например, рассматривая его просто заявление о вставке, но im buggered. Заранее спасибо.
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.";} }
ok i echoed stmt error, и он сказал мне, что $ resultsTable не существует. В core.inc у меня есть определение для этой переменной
Используйте конкатенацию или двойные кавычки.
$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,?,?,?,?,?,?,?)";