2012-07-10 6 views
0

Вот небольшая программа php, которую я сделал несколько лет назад (она работала тогда ...) Как я недавно пытался включить ее в свой новый «веб-сайт», никаких данных нет вставляется в моей таблице ...Невозможно вставить данные в таблицу mysql с php

(когда я запускаю его, я не получаю никакого сообщения об ошибке)

Если кто-нибудь может сказать мне, что случилось, я был бы очень рад. СПАСИБО!


// data,from a form on another page, that I want to insert in my db 

$nom = $_POST['nom']; 
$prenom = $_POST['prenom']; 
$date = $_POST['date']; 
$identifiant = $_POST['identifiant']; 
$password = $_POST['password']; 


// connexion to my database 
$connexion = mysql_connect("mysql5.000webh.com","a888888_user","mypassword"); 
mysql_select_db("a888888_mydatabase",$connexion); 

// creation and sending of SQL query 
$requete = "insert into panel values 
('','$nom','$prenom','$date','$identifiant','$password')"; 
mysql_query($requete); 

echo "Vos donnees ont ete envoyees !"; 
include('page.html'); 

// closing Mysql connexion 
mysql_close(); 

+3

Для быстрой отладки сделать 'mysql_query ($ requete)' линия говорят: 'mysql_query ($ requete) или умереть (mysql_error());' дать нам какое-то сообщение об ошибке. –

+0

Надеюсь, вы знаете, что этот код уязвим для SQL-инъекции - см. Http://stackoverflow.com/questions/60174/best-way-to-prevent-sql-injection-in-php –

+0

@MarcusRecck: TYVM! я сделал то, что вы сказали, и понял это! сообщение об ошибке было «Количество столбцов не соответствует количеству значений в строке 1» Я добавил еще одно значение, проверено, оно сработало! Еще раз спасибо за ваш быстрый ответ, приятный день! –

ответ

0

Вы не указали области, в которых до INSER значения:

$requete = "insert into panel values 
('','$nom','$prenom','$date','$identifiant','$password')" 
+1

Это не имеет смысла, если число полей, указанных здесь, равно количеству полей в базе данных. Они должны совпадать по количеству, порядку и типу. – Lion

+0

Привет! На самом деле у моего db_table было еще одно поле с именем access со значением по умолчанию 0, после пароля. Я просто подумал, что могу пропустить в строке, которую вы цитируете, потому что значение не было вставлено. –

1

Вместо непосредственного выполнения вашего запроса, как,

mysql_query($requete); 

Использование переменную для получения результата запроса с использованием переменной типа ,

$result = mysql_query($requete); 

Теперь с помощью простой проверки, был ли выполнен ваш запрос или не только с помощью, если заявление, а затем использовать функцию mysql_error(), чтобы увидеть ошибку.

if (!$result) { 
    die(mysql_error()); 
} 
Смежные вопросы