Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[23000]: Integrity constraint violation

エラーメッセージFatal error

エラーメッセージ

 状態:-  閲覧数:2,991  投稿日:2014-10-22  更新日:2014-10-22  
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[23000]: Integrity constraint violation: 1052 Column '★★' in where clause is ambiguous' in /〇〇.php:△△


エラー内容


整合性制約違反
・WHERE条件が曖昧なため何を参照すれば良いか分からない、と言う致命的なエラー
・★★カラムがどのテーブルに所属しているか不明な場合等に発生


実際に遭遇した例

 閲覧数:1,647 投稿日:2014-10-22 更新日:2014-10-22 

エラーメッセージ


Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'public' in where clause is ambiguous' in /〇〇.php:42


エラー発生箇所


    public function fetchAllElem()
   {
       $sql = "
           SELECT a.*, u.display_name, u.site_id, s.situation, s.color, z.*,e.elem_title,e.elem_url
               FROM entry a
                   LEFT JOIN user u ON a.user_id = u.id
                 LEFT JOIN state s ON a.state_id = s.state_id
                 
                  LEFT JOIN(
                     SELECT
                       a.category_id, a.category, a.parent_id,
                         CASE WHEN a.parent_id = 0
                         then a.fonticon
                         else b.fonticon
                         end AS fonticon,

                         CASE WHEN a.parent_id = 0
                         then a.color
                         else b.color
                         end  AS color,

                         CASE WHEN a.parent_id = 0
                         then a.category
                         else b.category
                         end AS parent_category,
                       
                         CASE WHEN a.parent_id = 0
                         then a.category_id
                         else a.parent_id
                         end AS parent_id2      
                     FROM
                       category a
                     LEFT JOIN
                       category b on a.parent_id = b.category_id        
                    AS z ON a.category_id = z.category_id                

                   RIGHT JOIN elem e ON a.id = e.entry_id

               WHERE public = 1
               ORDER BY GREATEST(a.`created_at`,a.`modified`) DESC
       ";

       return $this->fetchAll($sql);
   }



エラー原因


・publicカラムがどのテーブルに所属しているか不明


エラー修正


所属テーブル名付与
・a.public
    public function fetchAllElem()
   {
       $sql = "
           SELECT a.*, u.display_name, u.site_id, s.situation, s.color, z.*,e.elem_title,e.elem_url
               FROM entry a
                   LEFT JOIN user u ON a.user_id = u.id
                 LEFT JOIN state s ON a.state_id = s.state_id
                 
                  LEFT JOIN(
                     SELECT
                       a.category_id, a.category, a.parent_id,
                         CASE WHEN a.parent_id = 0
                         then a.fonticon
                         else b.fonticon
                         end AS fonticon,

                         CASE WHEN a.parent_id = 0
                         then a.color
                         else b.color
                         end  AS color,

                         CASE WHEN a.parent_id = 0
                         then a.category
                         else b.category
                         end AS parent_category,
                       
                         CASE WHEN a.parent_id = 0
                         then a.category_id
                         else a.parent_id
                         end AS parent_id2      
                     FROM
                       category a
                     LEFT JOIN
                       category b on a.parent_id = b.category_id        
                    AS z ON a.category_id = z.category_id                

                   RIGHT JOIN elem e ON a.id = e.entry_id

               WHERE a.public = 1
               ORDER BY GREATEST(a.`created_at`,a.`modified`) DESC
       ";

       return $this->fetchAll($sql);
   }



Invalid parameter number: parameter was not defined

Fatal error: require_once(): Failed opening required 'XML/RSS.php'

コメント投稿(ログインが必要)



類似度ページランキング
順位 ページタイトル抜粋
1 Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[23000]: Integrity constraint violation 36
2 Fatal error: Uncaught PDOException: SQLSTATE[HY000] [2002] Connection refused 35
3 ( ! ) Fatal error: Uncaught PDOException: SQLSTATE[HY093]: Invalid parameter number: parameter was not defined 33
4 ( ! ) Fatal error: Uncaught PDOException: SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'カラム名' cannot be null 33
5 Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000]: General error: 1030 Got error 139 from storage engine' 29
6 ( ! ) Fatal error: Uncaught PDOException: SQLSTATE[22001]: String data, right truncated: 1406 Data too long for column 28
7 ( ! ) Fatal error: Uncaught PDOException: SQLSTATE[22001]: String data, right truncated: 1406 Data too long for column 28
8 Parse error: syntax error, unexpected T_INCLUDE, expecting T_FUNCTION 28
9 ( ! ) Fatal error: Uncaught PDOException: SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens 28
10 Parse error: syntax error, unexpected T_INCLUDE_ONCE, expecting T_FUNCTION 27
11 creating database ERROR!!: exception 'PDOException' with message 'SQLSTATE[HY000]: General error: 1 table tally already exists' 27
12 Parse error: syntax error, unexpected T_REQUIRE, expecting T_FUNCTION 27
13 Parse error: syntax error, unexpected T_DOUBLE_ARROW in △△ on line □□ 27
14 ( ! ) Fatal error: Uncaught Abraham\TwitterOAuth\TwitterOAuthException 27
15 Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000]: General error: 23 Out of resources when opening file '/tmp/#sql_2dd6_0.MYI' (Errcode: 24)' 27
16 Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[28000] [1045] Access denied for user 'データベースユーザー名'@'localhost' (using password: YES)' 27
17 Parse error: syntax error, unexpected T_DECLARE, expecting T_STRING in ○○ on lin 27
18 Parse error: syntax error, unexpected 'public' (T_PUBLIC) 27
19 Parse error: syntax error, unexpected T_REQUIRE_ONCE, expecting T_FUNCTION 26
20 ( ! ) Fatal error: Uncaught Abraham\TwitterOAuth\TwitterOAuthException: timed out before SSL handshake 26
2026/7/21 16:31 更新
週間人気ページランキング / 7-14 → 7-20
順位 ページタイトル抜粋 アクセス数
1 PHP用語 10
2 コンストラクタ デストラクタ | クラスとオブジェクト 4
3 ログイン 3
4 型キャスト | 型 2
4 セッション名 | セッション 2
4 エラーレベル一覧(error_reportingの設定) 2
4 カテゴリ一覧 2
4 ゲストコメント一覧ページ 2
4 Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000]: General error: 23 Out of resources when opening file '/tmp/#sql_2dd6_0.MYI' (Errcode: 24)' | エラーメッセージ 2
4 実際に遭遇した例 2
4 session.entropy_fileデフォルト設定値 2
4 デリミタ 2
4 PHPで定数を定義する方法は2種類ある / 配列定数の定義 2
4 Parse error: syntax error, unexpected $end in ○○.php on line △△ | Parse error(エラーメッセージ) 2
4 PHPでcurlを使用するためには?/ 2.オプション設定 / curlでPOST送信 2
4 You currently have Essential access which includes access to Twitter API v2 endpoints only. If you need access to this endpoint, you’ll need to apply for Elevated access via the Developer Portal. | Twitter API(エラーメッセージ) 2
4 htmlspecialchars / htmlentities / addslashes / mysql_real_escape_string / mysqli_real_escape_string | セキュリティ 2
4 デフォルト引数 | 関数 2
4 Fatal error: Uncaught Error: Class 'Mecab_Tagger' not found in /var/www/★★.php:☆☆ | Fatal error(エラーメッセージ) 2
4 遭遇例1.存在する間違ったデータベース名を指定 2
2026/7/21 5:05 更新