用mysqli改造后,发布商品写入数据失败?
来源:2-3 商品发布之数据入库
von_colonel
2018-08-02 10:19:53
<?php
include_once './lib/fun.php';
if(!checkLogin())
{
msg(2, '请登录', 'login.php');
}
$user = $_SESSION['user'];
//表单进行了提交处理
if(!empty($_POST['name']))
{
$con = mysqlInit('127.0.0.1', 'root', '123456', 'imooc_mall');
//画品名称
$name = mysqli_real_escape_string($con,trim($_POST['name']));
//画品价格
$price = intval($_POST['price']);
//画品简介
$des = mysqli_real_escape_string($con,trim($_POST['des']));
//画品详情
$content = mysqli_real_escape_string($con,trim($_POST['content']));
$nameLength = mb_strlen($name, 'utf-8');
if($nameLength <= 0 || $nameLength > 30)
{
msg(2, '画品名应在1-30字符之内');
}
if($price <= 0 || $price > 999999999)
{
msg(2, '画品名称应小于999999999');
}
$desLength = mb_strlen($des, 'utf-8');
if($desLength <= 0 || $desLength > 100)
{
msg(2, '画品简介应在1-100字符之内');
}
if(empty($content))
{
msg(2, '画品详情不能为空');
}
$userId = $user;
$now = $_SERVER['REQUEST_TIME'];
$pic = imgUpload($_FILES['file']);
// 参数打印都可以成功!
echo $name,'<br/>';
echo $price,'<br/>';
echo $des,'<br/>';
echo $content,'<br/>';
echo $pic,'<br/>';
echo $userId,'<br/>';
echo $now,'<br/>';
//入库处理
$sql = "INSERT `im_goods`(`name`,`price`,`des`,`content`,`pic`,`user_id`,`create_time`,`update_time`,`view`) VALUES ('{$name}','{$price}','{$des}','{$content}','{$pic}','{$userId}','{$now}','{$now}',0)";
if($obj = mysqli_query($con,$sql))
{
msg(1,'操作成功','index.php');
echo "成功!";
}
else
{
echo "失败!";
echo mysql_errno();
exit;
}
}
?>页面没有报错信息,一片空白!
1回答
imooc_澈
2018-08-02
你好,使用var_dump初步打印看看,先打印post数据,看数据是否传过去,再在if判断里测试一下程序是否走进了if判断里,一点点测试。
将sql语句echo出来,直接放到你的数据库管理软件运行一下看看,检测sql语句的拼接是否有问题
另外检查你的php配置文件,将报错信息打开,php.ini,修改如下:
display_errors = On
error_reporting = E_ALL | E_STRICT
这样如果代码确实报错了,那错误提示就会显示在窗口中。
如果问题依然找不到,请连同html页面以及你的数据库提交,祝学习愉快~
相似问题