2013-06-03 3 views
-1

Я новичок в PHP и просто пробую простую форму, но имею проблему со страницей insert.php Прежде всего, мой db состоит из 4 записей (id, name, phonenumber, date), столбец id авто инкрементная страница.php simple insert form

я создаю для отображения информации на страницу индекс вызова PHP это работает хорошо но проблема insert.php страница, страница не загружается и не может вставки значения и идти, чтобы увидеть новое значение вставки в индексной странице PHP

<?php 
     if(isset($_post['name'])){ 
      $mysqli = new mysqli('localhost','root','','interdet'); 
      $statement =$mysqli->prepare("INSERT INTO detectives(name)VALUES(?,?)"; 
      $statement->bind_param('ss',$_POST['name']); 
      $statement->execute(); 
      echo "Done! <a href='index.php'>Go here see new detective </a>"; 

     } 
     else { 
      ?> 
      <form action="insert.php" method="POST"> 
      <p>Name : <input type="text" name="name" /> <P> 
      <p><input type="submit"/></p> 
      </form> 
<?php } ?> 
+0

Так как насчет 'phonenumber' и' date'? Вы не вставляете их, имеют ли они значения по умолчанию? или они позволяют «NULL» –

+0

- это ваша форма и ваш sql-адрес на одной странице? –

+0

Где находится вопрос? Что вы пытались решить проблему? Что вы пытались выяснить, в чем проблема? – Alexxus

ответ

0

Я извиняюсь, но, глядя на свой код, я думаю, что все в порядке, просто я не понимаю эту линию:

$statement =$mysqli->prepare("INSERT INTO detectives(name)VALUES(?,?)"; 

Prepare opens the bracket (but doesn't close it) 

может быть это проблема?

+0

Спасибо вам, что правильно :) теперь работает –

+0

, но данные не вставляются в db –

+0

@ChamaraMadhushanka: Тогда ... почему вы приняли этот ответ как правильный? Пожалуйста, прочитайте мой ответ, я уверен, что это ваша проблема. –

2

Сперва я могу сказать вам, что вы пытаетесь связать два параметра, но вы только привязываете их.

На второй взгляд у вас также отсутствует закрывающая скобка для вашей подготовки.

$statement =$mysqli->prepare("INSERT INTO detectives(name)VALUES(?,?)"); 
//                ^^^ ? 
$statement->bind_param('ss',$_POST['name']); 
//      ^^ ^^^^^^^^^^^^^^ ??? 
+0

@ChamaraMadhushanka: Если этот ответ решает вашу проблему, рассмотрите возможность его продвижения и принятия, щелкнув по большой зеленой отметке (✔) по результату ответа. –

+0

Я редактирую, но не работаю –

0

Вы вставляете в одном столбце «имя», но вы связываете 2 значения. Я думаю, что правильный синтаксис:

$statement =$mysqli->prepare("INSERT INTO detectives(name)VALUES(?)"); 
    $statement->bind_param('s',$_POST['name']); 
    $statement->execute();