Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
执行insert PHP代码时查询数据库时出错_Php_Mysql_Sql - Fatal编程技术网

执行insert PHP代码时查询数据库时出错

执行insert PHP代码时查询数据库时出错,php,mysql,sql,Php,Mysql,Sql,我一直在修改我的PHP代码,将数据插入SQL表中,查询数据库时总是出错。这些值来自一个普通的HTML表单,当我点击submit(action=memberadd.php)时,我从下面的代码中得到错误消息。我错过了一些东西,但看不到是什么 <?php $first_name = $_POST['first_name']; $last_name = $_POST['last_name']; $city = $_POST['city']; $state

我一直在修改我的PHP代码,将数据插入SQL表中,查询数据库时总是出错。这些值来自一个普通的HTML表单,当我点击submit(action=memberadd.php)时,我从下面的代码中得到错误消息。我错过了一些东西,但看不到是什么

    <?php 
    $first_name = $_POST['first_name'];
    $last_name = $_POST['last_name'];
    $city = $_POST['city'];
    $state = $_POST['state'];
    $country = $_POST['country'];
    $industry = $_POST['industry'];//only showing one - need to fix
    $profile_visibility = $_POST['profile_visibility'];
    $position = $_POST['position'];
    $status = $_POST['status'];
    $profile_link = $_POST['profile_link'];
    $skills = $_POST['skills'];


    //connects and sends information to the database
    $dbc = mysqli_connect('localhost', 'root', 'root', 'main') or die('Error connecting to       MySQL server.');

   //inserts data into the member_details table main db
   $query = "INSERT INTO 'member_details' (first_name, last_name, city, state, country, industry, profile_visibility, position, status, profile_link, skills) 
   VALUES ('$first_name', '$last_name', '$city', '$state', '$country', '$industry', '$profile_visibility', '$position', '$status', '$profile_link', '$skills')";

   $result = mysqli_query($dbc, $query) or die('Error querying database.');
   mysqli_close($dbc);

   echo '<h2>Here are your details.</h2>';
   echo '<h3>First Name: '.$first_name.'<br />';
   echo '<h3>Last Name: '.$last_name.'<br />';
   echo 'City: '.$city.'<br />';
   echo 'State: '.$state.'<br />';
   echo 'Country: '.$country.'<br />';
   echo 'Industry: '.$industry.'<br />';//only showing one - need to fix
   echo 'Profile: '.$profile_visibility.'<br />';
   echo 'Position: '.$position.'<br />';
   echo 'Status: '.$status.'<br />';
   echo 'Link: '.$profile_link.'<br />';
   echo 'Skills: '.$skills.'<br /></h3>';

   ?>

问题

问题在于
INSERT
语句中的表名周围有引号

$query = "INSERT INTO 'member_details' (first_name, ...
                      ^              ^
解决方案

如果希望“引用”表名或列名,则应使用倒勾,您可以在上阅读更多有关倒勾的信息

检测错误

要检查MySQLi数据库请求中的错误,有几种方法可用于获取错误信息。最有用的可能是
mysqli\u error()

同样,在开发新代码时,您应该正确使用错误报告。理想情况下,您应该在php.ini中对此进行配置,但也可以通过在页面顶部添加以下内容轻松完成


最后,您对敞开了大门。您应该研究使用来帮助防止这种情况。

您可以使用mysql查询,如

$query = "INSERT INTO `member_details` SET first_name = '".$first_name."', last_name = '".$last_name."', city = '".$city."', state = '".$state."', country = '".$country."', industry = '".$industry."', profile_visibility = '".$profile_visibility."', position = '".$position."', status = '".$status."', profile_link = '".$profile_link."', skills = '".$skills."'";

删除“成员详细信息”中的引号
插入“
56个答案待查。。。(只需2段简短的引语)将错误报告添加到文件顶部
错误报告(E_ALL);ini设置(“显示错误”,1)在开发过程中。这将发出错误信号。更改您的
die()
调用以显示错误消息:
或die('error querying database.'.mysqli_error($dbc))
@Fred ii-MySQL错误不会报告为PHP错误,您必须调用
mysqli_error()
来获取它们。正如我在上面的评论中指出的,启用PHP错误报告不会导致报告此错误<代码>mysqli
不会自动报告数据库错误。@Barmar啊,是的,正确。所以习惯于使用PDO,在正确设置时会抛出异常。适当地编辑了我的答案。谢谢你的提及。
$result = mysqli_query($dbc, $query);
if(!$result)
{
  printf("Errormessage: %s\n", mysqli_error($dbc));
}
error_reporting(E_ALL); 
ini_set('display_errors', 1);
$query = "INSERT INTO `member_details` SET first_name = '".$first_name."', last_name = '".$last_name."', city = '".$city."', state = '".$state."', country = '".$country."', industry = '".$industry."', profile_visibility = '".$profile_visibility."', position = '".$position."', status = '".$status."', profile_link = '".$profile_link."', skills = '".$skills."'";