2016-03-26 1 views
0

Я решил проблему. Следующий код теперь работает отлично. Спасибо всем.Ошибка синтаксиса PHP для хранения данных в mysql db

Пожалуйста соответствующий раздел dbcontroller.php файла следующим образом:

<?php 
class DBController { 


function runQuery2($query) { 
    $result = mysql_query($query); 
      return $result; 
    } 

} 

Кроме того, я поправки своих первоначальных заявлений MySQL в моем главном файле HTML/PHP выглядеть следующим образом:

<?php 
session_start(); 
require_once("dbcontroller.php"); 
$db_handle = new DBController(); 


if(!empty($_POST["submit"])) { 

    if ($db_handle->runQuery2("INSERT INTO cquestionstable 
    (postid, ccode, nick, queries) VALUES (1,'cc-001', 'james', 'what  
    could be the problem?')") === TRUE) { 
    echo "New record created successfully"; 
    } else { 
    echo "Error in posting question, pls try again." . "<br>"; 
    } 

?> 

Спасибо, привет.

+2

какая ошибка вы получаете? также измените строку следующим образом: - 'echo 'Error:". $ sql. "
". $ db_handle-> error; 'remove' ** ' –

+0

Если postid установлен как auto_increment, я бы не включил его в' insert statement'. Возможно, проблема заключается в данных, которые вы пытаетесь вставить. 'var_dump' данные. –

+0

Покажите нам класс dbHandler. – Ohgodwhy

ответ

0

Ваш код:

<?php 
    session_start(); 
    require_once("dbcontroller.php"); 
    $db_handle = new DBController(); 

    if(!empty($_POST["submit"])) { 

     $sql = "INSERT INTO cquestionstable (postid, ccode, nick, queries) VALUES (1,'cc-001', 'james', 'what could be the problem?')"; 
     if ($db_handle->runQuery($sql) === TRUE) { 
      echo "New record created successfully"; 
     } else { 
      echo "Error: " . $**sql . "<br>" . $db_handle->error; 
     } 
    } 
?> 

Я вижу ошибки уже.

Первый if (!empty($_POST["submit"])) { должен быть if (isset($_POST["submit"])) {

Затем вы использовали if ($db_handle->runQuery($sql) === TRUE) {, которые на самом деле должны быть if ($conn->query($sql) === TRUE) {

Затем в эхо вы использовали $**sql, которые должны быть $sql

Тогда я не знал, что dbcontroller.php был только окончательный код должен быть

<?php 
    // session_start(); You do not need this when inserting into database 
    include "dbcontroller.php"; 

    if (isset($_POST["submit"])) { 

     $sql = "INSERT INTO cquestionstable (postid, ccode, nick, queries) VALUES (1, 'cc-001', 'james', 'what could be the problem?')"; 
     if ($conn->query($sql) === TRUE) { 
      echo "New record created successfully"; 
     } else { 
      echo "Error: " . $sql . "<br>" . $connn->error; 
     } 
    } 
?> 

dbcontroller.php

<?php 

$servername = "localhost"; 
$username = "username"; 
$password = "password"; 
$dbname = "myDB"; 

// Create connection 
$conn = new mysqli($servername, $username, $password, $dbname); 
// Check connection 
if ($conn->connect_error) { 
    die("Connection failed: " . $conn->connect_error); 
} 

?> 

Если вы до сих пор не понимаю, почему это не работает, пожалуйста, смотрите на w3Schools

Надежда это ответ, который вы мы ищем.

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