我已经做了很多次,但现在我不能:(
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部分执行代码。任何的想法?提前谢谢。
答案 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代码中使用不同帐户的人。这是有问题的,并且最终会导致问题,因为有时会忘记不同的帐户。