2014-02-05 3 views
0

Это то, что я сделал в своей части кодирования. Код свободен от ошибок, но значения не вставляяЗначение не вставляется в базу данных и код не исправит.

$name = $_POST['name']; 
$cname = $_POST['cname']; 
$caddr = $_POST['caddr']; 
$password = $_POST['password']; 
$cpassword = $_POST['cpassword']; 
$target_path = "upload/"; 
$target_path = $target_path.basename($_FILES['photo']['name']); 

move_uploaded_file($_FILES['photo']['tmp_name'], $target_path); 
$str = "WEB"; 
$cnt = "SELECT COUNT(no) AS count FROM user"; 
$result = mysql_query($cnt); 
$row = mysql_fetch_object($result); 
$res = $row->count; 
$res = $res+1; 
$uid = $str.$res; 
if($password==$cpassword) { 
mysql_query("insert into user (no, uid, name, password, cpassword, photo) values('$res', '$uid', '$name', '$password', '$cpassword', '$target_path', now())"); 

} 
+0

Этот код далек от «свободной от ошибок» ... Самый первый шаг, чтобы сделать это на самом деле * проверить * на наличие ошибок. http://php.net/mysql_error –

+1

Затем обязательное чтение http://www.php.net/manual/en/security.database.sql-injection.php и [Расширение mysql устарело и будет удалено в future: вместо этого используйте mysqli или PDO] (http://stackoverflow.com/q/13944956) –

+1

неверный ввод запроса. Пожалуйста, проверь это. вы написали 6 названий столбцов, а значение равно 7. hows возможно? –

ответ

1

пожалуйста, проверьте вставки запроса, вы упомянули только 6 полей вставки заявления, но при условии, 7 значения в вставной заявлении. Обновленный запрос ниже.

mysql_query("insert into user (no,uid,name,password,cpassword,photo) values('".$res."','".$uid."','".$name."','".$password."','".$cpassword."','".$target_path."')"); 
1

Ошибка в запросе на ввод. несоответствие столбцов при вставке.

mysql_query("insert into user (no,uid,name,password,cpassword,photo) values('$res','$uid','$name','$password','$cpassword','$target_path',now())"); 

Это 6 no,uid,name,password,cpassword,photo столбца вы назначаете вставить значение, но во второй части вы вставляете значение в 7 столбце

Как уже упоминает в своем вопросе комментарии относительно mysql_* устарели. и вот ваша часть запроса, чтобы поймать mysql_error

$sql = "insert into user (no,uid,name,password,cpassword,photo) values('$res','$uid','$name','$password','$cpassword','$target_path',now())"; 

$result = mysql_query($sql); 
if (!$result) { 
    echo 'Could not run query: ' . mysql_error(); 
    exit; 
} 
+1

Было бы бесконечно более продуктивно преподавать OP, как проверять сами ошибки, а что еще не так с их подходом –

+1

Я согласен с вами. ОП следует позаботиться об этом. Я буду обновлять ответ с помощью отладки. – Roopendra

1

Вы дали дополнительный ввод значений в запросе. Не указано имя поля для времени.

mysql_query("insert into user (no,uid,name,password,cpassword,photo) values('$res','$uid','$name','$password','$cpassword','$target_path',now())"); 
1

Ваш запрос на ввод неправильный. Вы указали шесть имен столбцов, но для них соответственно семь.

В вашем запросе на вставку последнее значение now() это дополнительно. Вы не указали, в какой столбец он будет вставлен. Укажите это.

1

Попробуйте это будет работать, если какие-либо проблемы, проверьте свои данные основного поля введите d передать значение соответственно

mysql_query("insert into user (no, uid, name, password, cpassword, photo) values('$res', '$uid', '$name', '$password', '$cpassword', '$target_path')"); 
Смежные вопросы