Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.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
Php 注册表上的MySQL错误_Php_Mysql_Database_Joomla_Phpmyadmin - Fatal编程技术网

Php 注册表上的MySQL错误

Php 注册表上的MySQL错误,php,mysql,database,joomla,phpmyadmin,Php,Mysql,Database,Joomla,Phpmyadmin,我目前正在使用joomla(带有模板mega deals II)创建一个网站,每当我测试注册时,都会出现两个错误之一 一个:警告 注册失败:您的SQL语法有错误;查看与MySQL服务器版本对应的手册,了解第3行“2”附近使用的正确语法 当“我的用户”表中的“我的id”列不是主键时,会发生这种情况,因此它会创建一个id为0的db条目。注册表确实会通过,我可以看到该帐户已添加到表中;但是,无论我添加了多少帐户,id始终为0 两个:警告 从数据库获取用户时出错:键“PRIMARY”的重复条目“0” 当

我目前正在使用joomla(带有模板mega deals II)创建一个网站,每当我测试注册时,都会出现两个错误之一

一个:警告

注册失败:您的SQL语法有错误;查看与MySQL服务器版本对应的手册,了解第3行“2”附近使用的正确语法

当“我的用户”表中的“我的id”列不是主键时,会发生这种情况,因此它会创建一个id为0的db条目。注册表确实会通过,我可以看到该帐户已添加到表中;但是,无论我添加了多少帐户,id始终为0

两个:警告


从数据库获取用户时出错:键“PRIMARY”的重复条目“0”

当我将id设置为主键并让它自动递增时,就会发生这种情况。我做了很多测试,并处理了表中的值。在我看来,出于某种原因,注册表先将id设置为0(因为id的默认值为none)的信息发送到数据库,然后出现错误,然后在表中自动递增。我这样说是因为我可以在这个特定错误再次发生之前添加1个用户,所以第一个用户似乎同时使用默认id和当前自动增量id?这可能吗

两者都设置为INT(11),但当我使用id作为主键时,id的最大值是id的当前增量,通常是700s左右

如果您能帮助解决这个问题,我们将不胜感激

这是我的数据库结构的图片

以下是我尝试过的stackoverflow的所有其他可能解决方案:

以下是mega deals II模板中注册目录中的代码

从default.php

<?php
/**
 * @package     Joomla.Site
 * @subpackage  com_users
 *
 * @copyright   Copyright (C) 2005 - 2015 Open Source Matters, Inc. All rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE.txt
 */

defined('_JEXEC') or die;

JHtml::_('behavior.keepalive');
JHtml::_('behavior.formvalidation');
?>
<div class="row">
    <div class="col-sm-4 col-sm-offset-4">
        <div class="registration<?php echo $this->pageclass_sfx?>">
            <?php if ($this->params->get('show_page_heading')) : ?>
                <h1><?php echo $this->escape($this->params->get('page_heading')); ?></h1>
            <?php endif; ?>

            <form id="member-registration" action="<?php echo JRoute::_('index.php?option=com_users&task=registration.register'); ?>" method="post" class="form-validate" enctype="multipart/form-data">

                <?php foreach ($this->form->getFieldsets() as $fieldset): // Iterate through the form fieldsets and display each one.?>
                    <?php $fields = $this->form->getFieldset($fieldset->name);?>
                    <?php if (count($fields)):?>
                        <?php foreach ($fields as $field) :// Iterate through the fields in the set and display them.?>
                            <?php if ($field->hidden):// If the field is hidden, just display the input.?>
                                <?php echo $field->input;?>
                            <?php else:?>
                                <div class="form-group">
                                    <?php echo $field->label; ?>
                                    <?php if (!$field->required && $field->type != 'Spacer') : ?>
                                        <span class="optional"><?php echo JText::_('COM_USERS_OPTIONAL');?></span>
                                    <?php endif; ?>

                                    <div class="group-control">
                                        <?php echo $field->input;?>
                                    </div>
                                </div>
                            <?php endif;?>
                        <?php endforeach;?>
                    <?php endif;?>
                <?php endforeach;?>

                <div class="form-group">
                    <button type="submit" class="btn btn-primary validate"><?php echo JText::_('JREGISTER');?></button>
                    <a class="btn btn-danger" href="<?php echo JRoute::_('');?>" title="<?php echo JText::_('JCANCEL');?>"><?php echo JText::_('JCANCEL');?></a>
                    <input type="hidden" name="option" value="com_users" />
                    <input type="hidden" name="task" value="registration.register" />
                </div>
                <?php echo JHtml::_('form.token');?>
            </form>
        </div>
    </div>
</div>


一个好的开始是发布您使用的代码,这会产生错误。不确定这是否是正确的代码,因为我使用的是CMS,但这是在默认的注册目录下。php:也在目录complete中。php:发布您的实际代码,而不是图片。这将更容易让人调试。没有人希望通过pictureedited post尝试为键“PRIMARY”添加codeDuplicate条目“0”必须是插入错误,而不是查询。获取用户时如何获取它?一个好的开始是发布您使用的代码,这会产生错误。不确定这是否是正确的代码,因为我使用的是CMS,但它在默认情况下位于注册目录下。php:也在目录complete中。php:发布您的实际代码,而不是图片。这将使人们更容易理解调试。没有人希望通过pictureedited post尝试为键“PRIMARY”添加codeDuplicate条目“0”必须是插入错误,而不是查询。在获取用户信息时,如何获取该信息?
<?php
/**
 * @package     Joomla.Site
 * @subpackage  com_users
 *
 * @copyright   Copyright (C) 2005 - 2015 Open Source Matters, Inc. All rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE.txt
 */

defined('_JEXEC') or die;
?>
<div class="registration-complete<?php echo $this->pageclass_sfx;?>">
    <?php if ($this->params->get('show_page_heading')) : ?>
    <h1>
        <?php echo $this->escape($this->params->get('page_heading')); ?>
    </h1>
    <?php endif; ?>
</div>