MySQL查询不起作用 - 没有错误

时间:2014-01-26 22:46:16

标签: php mysql

由于某种原因,我的查询无效,我将发布$ _POST的代码和输出。

我还将添加数据库结构的屏幕截图。

$ _ POST:enter image description here

代码:

    ini_set('display_errors',1); 
    error_reporting(E_ALL);
    echo "<pre>";
    var_dump($_POST);
    echo "</pre>";
    $mysqli = new mysqli("localhost", "lunar_casino", "******", "lunar_casino");
    if(isset($_POST['submit'])){
      $error = array();
      if(empty($error)){
        $bonus = $_POST['bonus'];
        $deposit = $_POST['deposit'];
        $offers = $_POST['offers'];
        $link = $_POST['link'];
        $name = $_POST['logo'];
        $q = $mysqli->query("INSERT INTO `lunar_casino`.`casino` VALUES(NULL, '$bonus', '$deposit', '$offers', '$link', '$logo', '$name', NULL)");
        if(!$q){
          echo "<font color='red'><b>There has been an error with our database! Please contact the website administrator!</b></font><br /><br />";
        } else {
          echo "<font color='green'><b>You have successfully added the casino!</b></font><br /><br />";
        }
      } else {
        echo "<font color='red'><b>There were ".count($error)." errors in your form:</b></font><br />";
        foreach($error as $err){
          echo "<b>".$err."</b><br />";
        }
        echo "<br />";
      }
    }

数据库结构: enter image description here

如果您需要更多信息,请告诉我们!

顺便说一下,我在查询中知道错误的方式是因为我检查了是否(!$ q)并且如果查询无法完成则显示错误消息,并显示错误消息页面。

任何想法为何不起作用?此外,我从查询中遗漏了日期,因为我不知道如何将当前日期:时间添加到查询中。

如果有人可以帮助解决这两个问题,请告诉我们! :)

2 个答案:

答案 0 :(得分:0)

我认为问题在于您将NULL设置为日期列。请尝试使用NOW()代替NULL

$q = $mysqli->query("INSERT INTO `lunar_casino`.`casino` VALUES(NULL, '$bonus', '$deposit', '$offers', '$link', '$logo', '$name', NOW())");

答案 1 :(得分:0)

这里的错误不太清楚。您可以尝试以下一些调试选项:

为字段命名

 $q = $mysqli->query("INSERT INTO `lunar_casino`.`casino` VALUES(NULL, '$bonus', '$deposit', '$offers', '$link', '$logo', '$name', NULL)");

 $q = $mysqli->query("INSERT INTO `lunar_casino`.`casino`(field1, field2...) VALUES(NULL, '$bonus', '$deposit', '$offers', '$link', '$logo', '$name', NULL)");

将查询保存到字符串并将其打印出来。 (戈登林诺夫)

echo "INSERT INTO `lunar_casino`.`casino` VALUES(NULL, '$bonus', '$deposit', '$offers', '$link', '$logo', '$name', NULL)"

在查询之前。这可以向您展示PHP为MySQL提供的功能。

检查错误

if ($mysqli->connect_errno) { //check connection error
    printf("Connect failed: %s\n", $mysqli->connect_error); //check query error
    exit();
}