Mysql在php中失败但在phpmyadmin中工作

时间:2013-01-31 00:57:21

标签: php mysql

我已经做了很多次,但现在我不能:(

insert allways返回false但是如果我执行相同的SQL脚本(从输出中删除),它会在数据库中插入而没有任何问题。我已连接到数据库,因为某些值是从另一个表中提取的。

这是我的代码:

     $query = "INSERT INTO normotensiones(fecha,macropera,pozo,equipo_pmx,equipo_compania,paciente,sexo,edad,id_compania,otra_compania,puesto,ta,tum,ove,coordinador) 
                                VALUES('$fecha','$macropera','$pozo','$equipo_pmx','$equipo_compania','$paciente','$sexo',$edad,$id_compania,'$otra_compania','$puesto','$ta','$tum','$ove','$coordinador')";
        if (mysql_query($query,$connection)){
            //OK
        } else {
            $errno = mysql_errno();
            $error = mysql_error();
            mysql_close($connection);
            die("<br />$errno - $error<br /><br />$query");
            exit;
        }

输出结果为:

0 -

INSERT INTO normotensiones(fecha,macropera,pozo,equipo_pmx, equipo_compania,paciente,sexo,edad,id_compania, otra_compania,puesto,ta,tum,ove,coordinador) 
                VALUES('20111001','P. ALEMAN 1739','P. ALEMAN 1715','726', 'WDI 838','SERGIO AYALA','M',33,21, '','','110/70','ROBERTO ELIEL CAMARILLO','VICTOR HUGO RAMIREZ','LIC. PABLO GARCES')

看起来没有错误,但总是在if指令的else部分执行代码。任何的想法?提前谢谢。

2 个答案:

答案 0 :(得分:1)

我认为问题可能是您在连接后缺少mysql_select_db行。

建立与数据库的连接后,您需要选择一个数据库。请确保您已选择所需表格所在的数据库。

您甚至可以使用以下代码段通过mysql_errors获取一些有用的信息。

    $connection = mysql_connect('localhost', 'root', 'password');

    if (!$connection) {
        die('<br>Could not connect: ' . mysql_error());
    }

    if (!mysql_select_db('db_name')) {
       die('Could not select database: ' . mysql_error());
    }

尝试在这些代码行之后插入查询。一切顺利。

答案 1 :(得分:0)

我同意其他有关列类型的信息。 INT是唯一不需要单引号的数据类型之一。

有两个空白字符串。有可能没有定义变量,因此给你一个PHP异常(甚至在MySql中也没有)但是需要比正常情况更严格的异常设置。我会亲自调查$ connection变量。在SQL查询语句之前,将此信息发送给我们并将结果发送给我们:

echo '<pre>'.var_dump($connection, true).'</pre>';

另外,在你的mysql_connect函数调用中,输入

OR die('No connection')

后记。使用mysql_select_db函数执行相同的操作,显然将其更改为“No DB Select”。

最终,我们需要更多信息。但改为mysqli是非常可取的。

哦!并确保您所连接的用户的权限不会更改。有时我会找到使用一个用户帐户连接到PhpMyAdmin但在PHP代码中使用不同帐户的人。这是有问题的,并且最终会导致问题,因为有时会忘记不同的帐户。