首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP看不到数据库中的字段

问PHP看不到数据库中的字段
EN

Stack Overflow用户
提问于 2014-03-28 10:34:11
回答 1查看 129关注 0票数 0

我有一个疑问:

代码语言:javascript
复制
insert into t_calls(`uniqueid`, `clid`, `first_answer_calls`, `duration`, 
`billsec`, `waitforanswer`, `disposition`, `typecalls`, `calldate`, 
`stprefix`, `stsuffix`, `filename`, `amaflags`) values('1395901608.476880', 
'+380688XXXXXX', '0', 0, 0, 0, 'CHANUNAVAIL', 1, '2014-03-27 06:26:48','157*', '', 
'IN_20140327-062648_+380688XXXXXX_-1_0_0','0001')

我的t_calls表

代码语言:javascript
复制
mysql> explain t_calls;
+--------------------+--------------+------+-----+---------------------+-------+
| Field              | Type         | Null | Key | Default             | Extra |
+--------------------+--------------+------+-----+---------------------+-------+
| uniqueid           | varchar(32)  | NO   | PRI |                     |       |
| clid               | varchar(80)  | NO   | MUL |                     |       |
| first_answer_calls | varchar(32)  | YES  | MUL | NULL                |       |
| duration           | int(11)      | NO   |     | 0                   |       |
| billsec            | int(11)      | NO   |     | 0                   |       |
| waitforanswer      | smallint(3)  | NO   | MUL | 0                   |       |
| disposition        | varchar(45)  | NO   |     |                     |       |
| amaflags           | int(11)      | NO   |     | 0                   |       |
| typecalls          | tinyint(2)   | NO   | MUL | 0                   |       |
| calldate           | datetime     | NO   | MUL | 0000-00-00 00:00:00 |       |
| stprefix           | varchar(10)  | YES  | MUL |                     |       |
| stsuffix           | varchar(32)  | YES  | MUL | NULL                |       |
| filename           | varchar(254) | YES  |     |                     |       |
+--------------------+--------------+------+-----+---------------------+-------+
13 rows in set (0.00 sec)

当我通过Mysqli执行这个查询时,一切正常,但是当我通过PHP尝试这个查询时,我会收到一个错误:

1054:“字段列表”中未知列‘st后缀’)

我做错了什么?

MySQL服务器版本:5.1.63-0+压缩1-日志

使用Suhosin修补程序的PHP5.3.3-7+挤压19

代码语言:javascript
复制
$link= new mysqli($mysql_db, $mysql_user, $mysql_pass,"estprod");
$res=$link->query($query);
$errnum = $link->errno;
$errmsg = $link->error;
if ($errnum==0)
{
        echo "Query in file $data inserted.\n";
}
else
{
    if (($errnum==1037) or ($errnum==1038) or ($errnum==1040) or ($errnum==1041) or ($errnum==1105))
    {
        echo ("Error in MySQL server($errnum: $errmsg).");
    }elseif (($errnum==1044) or ($errnum==1045) or ($errnum==1053) or ($errnum==1142) or ($errnum==1143))
    {
        echo ("No GRANT for insert operation($errnum: $errmsg). HELP.");
    }elseif (($errnum==1054) or ($errnum==1058) or ($errnum==1064) or ($errnum==1065))
    {
        echo "Error execute mysql query($errnum: $errmsg). \n";
    }elseif (($errnum==1062))
    {
        echo "Query duplicate.\n";
    }else
    {
        echo "Unknow error: ($errnum) $errmsg\n";
    }
}
EN

回答 1

Stack Overflow用户

发布于 2014-03-28 10:38:41

使用此代码并检查列st后缀是否已列出。

代码语言:javascript
复制
<?php
    $result = mysql_query("SHOW COLUMNS FROM sometable");
    if (!$result) {
        echo 'Could not run query: ' . mysql_error();
        exit;
    }
    if (mysql_num_rows($result) > 0) {
        while ($row = mysql_fetch_assoc($result)) {
            print_r($row);
        }
    }
    ?>
  • 有时,您可能在数据库表中创建了“st后缀”字段,其中包含一些空格,如“st后缀”。

代码语言:javascript
复制
- So you better alter that field in that table and check if space exists.
- if exist then remove it

​

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22710329

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档