【发布时间】:2016-06-30 04:04:27
【问题描述】:
我正在使用 PHP 和 MySQL 开发一个网站,首先我使用 XAMPP 预览我的网站的构建,这里一切正常(XAMPP PHP 版本是 5.7),问题是当我通过 FTP 上传内容时在我的网站中,INSERT 和 UPDATE 查询不适用于我的 PHP 脚本。
我已经阅读了一些关于两个版本之间兼容性问题的文章,FTP 服务器使用的是 PHP 5.2.17。
SELECT 查询在服务器中运行良好,因此登录数据库不是问题。
这是我使用UPDATE的代码:
include_once 'db_post.php';
$mysqli = new mysqli(DATA_HOST, DATA_USER, DATA_PASSWORD, DATA_DATABASE);
$catTitle = mysqli_real_escape_string($mysqli, $_POST['catName']);
$catDesc = mysqli_real_escape_string($mysqli, $_POST['catDesc']);
$catID = mysqli_real_escape_string($mysqli, $_GET['ID']); // I get this in the redirection, the value isn't in the POST form
$cT = "UPDATE categorias SET NombreCat = '$catTitle', DescripcionCat = '$catDesc', ImagenCat = 'no_image.png' WHERE IDCat = $catID";
if ($mysqli->query($cT) === TRUE) { header("Location: ../management.php?Action=ManageCategories&Edit=Successful"); }
else { header("Location: ../management.php?Action=ManageCategories&Edit=Error"); }
重定向通过错误,数据库中没有保存任何内容。
关于我的数据库的另一个信息是我正在使用 InnoDB 而不是 MyISAM,据称这是在 phpMyAdmin 中推荐的。
当我尝试插入一行时,没有查询:
include_once 'db_post.php';
$mysqli = new mysqli(DATA_HOST, DATA_USER, DATA_PASSWORD, DATA_DATABASE);
$catTitle = mysqli_real_escape_string($mysqli, $_POST['catName']);
$catDesc = mysqli_real_escape_string($mysqli, $_POST['catDesc']);
$cT = "INSERT INTO categorias (IDCat, NombreCat, DescripcionCat, ImagenCat) VALUES (null, '$catTitle', '$catDesc', 'no_image.png')";
if ($mysqli->query($cT) === TRUE) { header("Location: ../management.php?Action=ManageCategories&Add=Successful"); }
else { header("Location: ../management.php?Action=ManageCategories&Add=Error"); }
所以问题是,在那个版本的 PHP 中,在 MySQL 中查询的正确形式是什么?
【问题讨论】:
-
那么 MySQL 给你什么错误作为它不成功的原因?
-
你为什么使用 10 年前的 PHP 版本?那只是乞求您的网站被黑客入侵。那,将用户数据插入你的数据库而不检查它......
-
@miken32 托管服务器所有者不想更新他们的 PHP,我不能在我家这样做。 :(
标签: php mysql sql-update sql-insert