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


Mysql fails in php but works in phpmyadmin

我已经做了很多次了,但现在我无法:(

插入所有方式返回 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 部分执行代码。知道吗?提前谢谢。

我认为问题可能是您在连接后缺少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());
    }

并尝试在这些代码行之后插入查询。万事如意。

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

有两个空白字符串。有可能变量没有定义,因此给你一个PHP异常(甚至在MySQL中还没有),但这需要比正常情况更严格的异常设置。我会亲自研究$connection变量。在 SQL 查询语句之前,输入以下内容并将清理后的结果发送给我们:

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

此外,在mysql_connect函数调用中,将

OR die('No connection')

后记。对mysql_select_db函数执行相同的操作,显然将其更改为"无数据库选择"。

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

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