2015-07-28 3 views
0

пытается отправить данные из формы, но, похоже, не работает. Невозможно выявить какие-либо проблемы?Запрос не вставляя данные

 //Include connect file to make a connection to test_cars database 
     include("prototypeconnect.php"); 

     $proId    =  $_POST["id"]; 
     $proCode   =  $_POST["code"]; 
     $proDescr   =  $_POST["descr"]; 
     $proManu   =  $_POST["manu"]; 
     $proCPU    =  $_POST["cpu"]; 
     $proWPU    =  $_POST["wpu"]; 
     $proBarCode   =  $_POST["barcode"]; 
     $proIngredients  =  $_POST["ingredients"]; 
     $proAllergens  =  $_POST["allergenscon"]; 
     $proMayAllergens =  $_POST["allergensmay"]; 

     //Insert users data in database 
     $sql = "INSERT INTO prototype.Simplex_List (id, code, descr, manu, cpu, wpu, barcode, ingredients, allergenscon, allergensmay) 
     VALUES ('$proId' , '$proCode', '$proDescr' , '$proManu' , '$proCPU' , '$proWPU' , '$proBarCode' , '$proIngredients' , '$proAllergens' , '$proMayAllergens')"; 

     //Run the insert query 
     mysql_query($sql) 
+0

Что происходит, когда вы пытаетесь? Вы получаете сообщение об ошибке, или оно просто не загружается? – SQLHound

+0

любые ошибки или что-то еще? – Zelldon

+0

Вам нужно сделать фиксацию транзакции базы данных? – HashPsi

ответ

2

Прежде всего, пожалуйста, не используйте mysql_*** функции и, пожалуйста, использовать подготовленные заявления с PDOhttp://php.net/manual/en/pdo.prepare.php или mysqlihttp://php.net/manual/en/mysqli.quickstart.prepared-statements.php вместо этого. Подготовленные заявления help защитите вас от попыток внедрения sql, отключив предоставленные пользователем данные из запроса в базу данных.

Вы можете попробовать использовать mysql_real_escape_stringhttp://php.net/manual/en/function.mysql-real-escape-string.php, чтобы убедиться в отсутствии шальная " или ' не нарушая ваш запрос.

$proId    =  mysql_real_escape_string($_POST["id"]); 
    $proCode   =  mysql_real_escape_string($_POST["code"]); 
    $proDescr   =  mysql_real_escape_string($_POST["descr"]); 
    $proManu   =  mysql_real_escape_string($_POST["manu"]); 
    $proCPU    =  mysql_real_escape_string($_POST["cpu"]); 
    $proWPU    =  mysql_real_escape_string($_POST["wpu"]); 
    $proBarCode   =  mysql_real_escape_string($_POST["barcode"]); 
    $proIngredients  =  mysql_real_escape_string($_POST["ingredients"]); 
    $proAllergens  =  mysql_real_escape_string($_POST["allergenscon"]); 
    $proMayAllergens =  mysql_real_escape_string($_POST["allergensmay"]); 

Кроме обеспечения вашей формы представляются по телефону var_dump($_POST) для проверки данных

Вы также можете увидеть, если запрос erroring с помощью mysql_errorhttp://php.net/manual/en/function.mysql-error.php

if (!mysql_query($sql)) { 
    echo mysql_error(); 
} 
1

советов о PDO, подготовленный были сделаны заявления.

1) У вас есть база данных и подключение к ней? Посмотрите на свой prototypeconnect.php и найдите там имя базы данных. убедитесь, что его имя и пароль похожи на то, что у вас есть.

2) У вас есть таблица с названием prototype.Simplex_List в вашей базе?

а) ЕСЛИ У ВАС: проверить, если ваш MySQL версии> = 5.1.6 http://dev.mysql.com/doc/refman/5.1/en/identifiers.html

б) ЕСЛИ У ВАС ЕСТЬ, НО ЕГО ИМЯ является Simplex_List:

б-1), если ваше имя базы данных НЕ является prototype:

заменить

$sql = "INSERT INTO prototype.Simplex_List 

с

$sql = "INSERT INTO Simplex_List 

б-2), если ваше имя базы данных prototype:

вы должны избежать данных $ _POST с mysql_real_escape_string, как @fyrye сказал.

с) ЕСЛИ ВЫ НЕ: вы должны создать его

3) Проверьте вашу структуру таблицы

у него есть все theese поля id, code, descr, manu, cpu, wpu, barcode, ingredients, allergenscon, allergensmay?

если у вас есть там PRIMARY или UNIQUE ключи вы должны быть уверены, что вы не пытаетесь вставить дублирующиеся данные на них

, но в любом случае заменить вашу

$sql = "INSERT INTO 

с

$sql = "INSERT IGNORE INTO 

PS: его не может помочь вам без сообщений об ошибках со стороны

Смежные вопросы