Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/278.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 SQLSTATE[42000]:语法错误或访问冲突:1066_Php_Mysql_Phalcon - Fatal编程技术网

Php SQLSTATE[42000]:语法错误或访问冲突:1066

Php SQLSTATE[42000]:语法错误或访问冲突:1066,php,mysql,phalcon,Php,Mysql,Phalcon,我在PHP Phalcon中使用Xampp服务器 我拥有模特的继承权: UsersAbstract是用户官员、用户患者的家长 UsersOfficial是官方的父级 数据库中的表与上面的模型具有相同的名称,只是名称采用驼峰大小写,如User_官员等。只有UsersAbstract的表在camel case中没有命名。原因是在这个项目开发的早期,我遇到了一个错误,通过将名称改为UsersAbstract而不是Users\u Abstract来解决 无论如何,现在我尝试运行一段代码,导致错误的代码段

我在PHP Phalcon中使用Xampp服务器

我拥有模特的继承权:

UsersAbstract是用户官员、用户患者的家长

UsersOfficial是官方的父级

数据库中的表与上面的模型具有相同的名称,只是名称采用驼峰大小写,如User_官员等。只有UsersAbstract的表在camel case中没有命名。原因是在这个项目开发的早期,我遇到了一个错误,通过将名称改为UsersAbstract而不是Users\u Abstract来解决

无论如何,现在我尝试运行一段代码,导致错误的代码段如下:

foreach ($available_users as $user)
{
  $select_doctor = "Select "
         ."UserOfficials.Occupation,"
         ."UsersAbstract.Full_Name,"
         ."UserOfficials.Doc_ID "
         ."from UserOfficials join UsersAbstract "
         ."On UserOfficials.Unique_ID = UsersAbstract.Unique_ID"
         ." Where UserOfficials.Unique_ID = :uid:";

  $doctor_details = $this->modelsManager->executeQuery($select_doctor, array("uid" => $user->Unique_ID));

   if ($doctor_details->occupation == "Doctor")
        $this->available_doctor = $doctor_details;
}
我正在尝试将医生从可用用户列表中分离出来。我收到的错误是

SQLSTATE[42000]: Syntax error or access violation: 1066 Not unique table/alias: 'usersabstract'
UserOfficials和UsersAbstract表都有一个名为Unique_ID的列,用于将它们相互链接

编辑:我添加了连接条件

[已解决]

UsersAbstract类有一个函数“getSource()”。该函数在子类和子类中没有重载。这就是在我的代码中观察到错误的原因。当我唯一地设置每个模型类的源时,问题就解决了。

试试这个查询

$select_doctor = "Select "
     ."UserOfficials.Occupation,"
     ."UsersAbstract.Full_Name,"
     ."UserOfficials.Doc_ID "
     ."from UserOfficials join UsersAbstract "
     ."ON (UserOfficials.Unique_ID = UsersAbstract.Unique_ID)"
     ."WHERE UserOfficials.Unique_ID = :uid: AND UsersAbstract.Unique_ID = :uid:";

没有连接条件。顺便说一句,
这是一个CAMELCASE
这是蛇的大小写
,我
不知道你为什么要在同一个数据库模式中混合它们
好吧,我不知道你的表名是
UsersAbstract
,那么为什么它显示的
不是唯一的表/别名:“UsersAbstract”
DB不区分大小写。当我在XAMPP中创建表时,我这样命名它们,但它们会自动转换为小写。但这并不重要,其他控制器中的其他语句正在工作。我更改了拼写,这似乎转移了当前的问题