2013-06-21 5 views
-1

Я знаю, что такие вопросы были заданы раньше, и я просмотрел эти темы и по-прежнему не могу найти ошибку в моем синтаксисе, поэтому я повернул публиковать мои собственные.У вас есть ошибка в синтаксисе SQL (mySQL)

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INSERT_INTO users (uid,email,pass_hash,permissions,join_date) VALUES ('wright.ma' at line 1) 

Мой код приведен ниже, но все остальное работает до SQL, который представляется мне действительным.

$email = $_POST['email']; 
    $pass = $_POST['pass']; 
    $pass2 = $_POST['pass2']; 
    $uid = $_POST['uid']; 
    $join_date = date("Y-m-d H:i:s"); 
    if ($_POST['permissions']) { $permissions = $_POST['permissions']; } else { $permissions = 0; } 
    if (!$email) { 
    header('HTTP/1.1 500 Internal Server Error'); 
    header('Content-Type: application/json'); 
    exit("Security Module Error - Email address not provided"); 
    } 
    if (!$uid) { 
    header('HTTP/1.1 500 Internal Server Error'); 
    header('Content-Type: application/json'); 
    exit("Security Module Error - User ID not provided"); 
    } 
    if (!$pass || !$pass2 || ($pass != $pass2)) { 
    header('HTTP/1.1 500 Internal Server Error'); 
    header('Content-Type: application/json'); 
    exit("Security Module Error - Password not provided or doesn't match"); 
    } 
    $pass_hash = crypt($pass,'$1$$hash$1'); 

    $conn = @mysql_connect("localhost","root","root"); 
    if (!$conn) { 
    header('HTTP/1.1 500 Internal Server Error'); 
    header('Content-Type: application/json'); 
    exit("Database Error - Unable to Connect"); 
    } 
    $db = @mysql_select_db("start", $conn); 
    if (!$db) { 
    header('HTTP/1.1 500 Internal Server Error'); 
    header('Content-Type: application/json'); 
    exit("Database Error - Unable to Access Database"); 
    } 
    $result = @mysql_query("INSERT_INTO users (uid,email,pass_hash,permissions,join_date) VALUES ('$uid','$email','$pass_hash','$permissions',$join_date)"); 
    if (!$result) { 
    header('HTTP/1.1 500 Internal Server Error'); 
    header('Content-Type: application/json'); 
    exit("Database Error - Unable to Create Record (".mysql_error($conn).")"); 
    } 
    $row = mysql_fetch_array($result); 
    if (!$row) { 
    header('HTTP/1.1 500 Internal Server Error'); 
    header('Content-Type: application/json'); 
    exit("Security Module Error - Unable to Authenticate Record Creation"); 
    } else { 
    $_SESSION['uid'] = $row['uid']; 
    $_SESSION['permissions'] = $row['permissions']; 
    $_SESSION['email'] = $row['email']; 
    } 

Второй комплект глаз, желающих помочь, был бы очень благодарен!

ответ

5

У вас есть знак подчеркивания, разделяющий INSERT и INTO. Синтаксис должен быть «INSERT INTO ....»

Вы также должны изучить использование PDO или mysqli, поскольку функции mysql_ * устарели.

+0

будет делать, спасибо! Теперь я получаю сообщение об ошибке в другом месте: около '20: 02: 34) 'в строке 1) Кажется, что это что-то связано с моей вставкой join_date, которая является DATETIME в моей базе данных. Я думал, что у меня для этого правильный формат, но выглядит ли он правильно? –

+0

Вам нужны котировки вокруг значений даты. – Robbert

2

Это следует читать ...

INSERT INTO users 

Не ..

INSERT_INTO users