我已经做了很多次了,但现在我无法:(
插入所有方式返回 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 代码中使用另一个帐户。这是有问题的,最终会导致问题,因为您有时会忘记不同的帐户。