Php SQLSTATE[42000]:语法错误或访问冲突:1066
我在PHP Phalcon中使用Xampp服务器 我拥有模特的继承权: UsersAbstract是用户官员、用户患者的家长 UsersOfficial是官方的父级 数据库中的表与上面的模型具有相同的名称,只是名称采用驼峰大小写,如User_官员等。只有UsersAbstract的表在camel case中没有命名。原因是在这个项目开发的早期,我遇到了一个错误,通过将名称改为UsersAbstract而不是Users\u Abstract来解决 无论如何,现在我尝试运行一段代码,导致错误的代码段如下:Php SQLSTATE[42000]:语法错误或访问冲突:1066,php,mysql,phalcon,Php,Mysql,Phalcon,我在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中创建表时,我这样命名它们,但它们会自动转换为小写。但这并不重要,其他控制器中的其他语句正在工作。我更改了拼写,这似乎转移了当前的问题