我编写脚本以用作2套数据库,图像库和菜单的CMS。他们使用xampp和mamp在Windows,Mac甚至Linux上测试的本地服务器上工作。我的php/sql脚本在本地服务器上工作,但在活动网站上不完整
但是在GoDaddy的实时网站上,菜单cms只能修改数据库项目,不会添加新项目。图库cms只能上传图片,但不会像其应该添加数据库项目。
我很欣赏关于如何调试此问题或任何可能的解决方案(仍有很多要了解PDO,PHP和SQL)的任何提示。
我需要(改变数据库凭证)的PDO文件:
<?php
ini_set('display_errors', 'On');
define('APP_ROOT', __DIR__);
define('VIEW_ROOT', APP_ROOT . '/views');
define('BASE_URL', '');
$db = new PDO('mysql:host=127.0.0.1;dbname=menu','sqladmin', 'password');
require 'functions.php';
?>
下面是图片上传脚本:
<?php
if(isset($_FILES['files'])) {
foreach ($_FILES['files']['name'] as $file=> $name) {
$filename = date('Ymd-His',time()).mt_rand().'-'.$name;
try {
if(move_uploaded_file($_FILES['files']['tmp_name'][$file],'../uploads/'.$filename)){
$stmt = $db->prepare("INSERT INTO multiupload VALUES('',?)");
$stmt->bindParam(1, $filename);
$stmt->execute();
}
} catch(Exception $e) {
echo $e;
}
}
}
?>
和添加项目到菜单的脚本:
<?php
if (!empty($_POST)) {
$name = $_POST['name'];
$label = $_POST['label'];
$dsc = $_POST['dsc'];
$price = $_POST['price'];
$price2 = $_POST['price2'];
$price3 = $_POST['price3'];
$price4 = $_POST['price4'];
$insertPage = $db->prepare("
INSERT INTO menu (name, label, dsc,price,price2,price3,price4)
VALUE (:name, :label, :dsc, :price,:price2,:price3,:price4)
");
$insertPage->execute([
'name' => $name,
'label' => $label,
'dsc' => $dsc,
'price' => $price,
'price2' => $price2,
'price3' => $price3,
'price4' => $price4,
]);
header('Location: ' . BASE_URL . '/admin/list.php');
}
?>
INSERT INTO multiupload VALUES('',?)' - 第一个值为空而第二个参数化的任何原因?它也可以用空字符串参数化。 –
首先,查看PHP,MySQL等版本的差异,然后在web服务器用户的mysql中检查权限。 –
如果你要检查真正的错误,也许你会知道你的代码为什么失败。 –