Heim >Backend-Entwicklung >PHP-Tutorial >求救!碰到了莫名其妙的问题!

求救!碰到了莫名其妙的问题!

WBOY
WBOYOriginal
2016-06-23 13:07:181008Durchsuche

Thinkphp框架


本来在另外一台电脑上wamp2.4   win7  完全可以运行,现在换了台电脑,wamp3.0    win10  就不能运行了,为什么啊?是不是配置没配好

以下代码

html:




 *





 *




 *




























js:
$('#add_user').validate({
submitHandler:function(form){
$('#add_user').ajaxSubmit({
url:ThinkPHP['MODULE']+'/User/add',
type:'POST',
success:function(data){
alert(data);
$('#name').val("");
$('#phone').val("");
$('#id_card').val("");
$('#health_card').val("");
$('#contact_name').val("");
$('#contact_phone').val("");
},
});

},
rules:{
name:{
required:true,
},
age:{
required:true,
},
phone:{
required:true,
},
id_card:{
required:true,
},
},
messages:{
name:{
required:'姓名不得为空',
},
age:{
required:'年龄不得为空',
},
phone:{
required:'电话不得为空',
},
id_card:{
required:'身份证不得为空',
},
},
});

控制器:
 public function add(){
            $user=D('User');
            $id=$user->add(I('post.name'),I('post.phone'),I('post.id_card'),I('post.health_card'),I('post.hospitalized'),I('post.address'),I('post.contact_name'),I('post.contact_phone'));
            echo $id?$id:0;
        
    }

model:
public function add($name,$phone,$id_card,$health_card,$hospitalized,$address,$contact_name,$contact_phone){

    //$身份证号 = '';
    $birth = strlen($id_card)==15 ? ('19' . substr($id_card, 6, 6)) : substr($id_card, 6, 8);
    $birth=substr($birth,0,4).'-'.substr($birth,4,2).'-'.substr($birth,6,2);
    list($year,$month,$day) = explode("-",$birth);
    $year_diff = date("Y") - $year;
    $month_diff = date("m") - $month;
    $day_diff  = date("d") - $day;
    if ($day_diff          $year_diff--;




        $age=$year_diff;
        $sex = substr($id_card, (strlen($id_card)==15 ? -1 : -2), 1) % 2 ? '男' : '女';


        $data=array(
            'name'=>$name,
            'age'=>$age,
            'sex'=>$sex,
            'phone'=>$phone,
            'id_card'=>$id_card,
            'health_card'=>$health_card,
            'hospitalized'=>$hospitalized,
            'address'=>$address,
            'contact_name'=>$contact_name,
            'contact_phone'=>$contact_phone,
        );



        return M('User')->add($data);
}

火狐报错:POST XHR http://localhost/aier/index.php/Home/User/add [HTTP/1.1 404 Not Found 35ms]

:(
1146:Table 'aier.u' doesn't exist [ SQL语句 ] : REPLACE INTO `U` () VALUES ()
错误位置

FILE: D:\wamp64\www\aier\ThinkPHP\Library\Think\Db\Driver.class.php  LINE: 350
TRACE

#0 D:\wamp64\www\aier\ThinkPHP\Library\Think\Db\Driver.class.php(350): E('1146:Table 'aie...')
#1 D:\wamp64\www\aier\ThinkPHP\Library\Think\Db\Driver.class.php(237): Think\Db\Driver->error()
#2 D:\wamp64\www\aier\ThinkPHP\Library\Think\Db\Driver.class.php(824): Think\Db\Driver->execute('REPLACE INTO `U...', false)
#3 D:\wamp64\www\aier\ThinkPHP\Library\Think\Model.class.php(320): Think\Db\Driver->insert('3424', 'U24234', '24323423')
#4 D:\wamp64\www\aier\APP\Home\Controller\UserController.class.php(12): Think\Model->add('3424', '324234', '24323423', '', '', '', '', '')
#5 [internal function]: Home\Controller\UserController->add()
#6 D:\wamp64\www\aier\ThinkPHP\Library\Think\App.class.php(173): ReflectionMethod->invoke(Object(Home\Controller\UserController))
#7 D:\wamp64\www\aier\ThinkPHP\Library\Think\App.class.php(110): Think\App::invokeAction(Object(Home\Controller\UserController), 'add')
#8 D:\wamp64\www\aier\ThinkPHP\Library\Think\App.class.php(204): Think\App::exec()
#9 D:\wamp64\www\aier\ThinkPHP\Library\Think\Think.class.php(120): Think\App::run()
#10 D:\wamp64\www\aier\ThinkPHP\ThinkPHP.php(97): Think\Think::start()
#11 D:\wamp64\www\aier\index.php(24): require('D:\\wamp64\\www\\a...')
#12 {main}


本来在另外一台电脑上wamp2.4   win7  完全可以运行,现在换了台电脑,wamp3.0    win10  就不能运行了,为什么啊?是不是配置没配好


回复讨论(解决方案)

这根本就是win10的问题。我换了win7马上能用了

如果报 404,那就是配置问题了
但你接下来的错误信息又是哪里来的呢?


Table 'aier.u' doesn't exist [ SQL语句 ] : REPLACE INTO `U` () VALUES ()
表 aier.u 不存在,就是你自己的问题了

知道问题了
控制器里:
如果直接用$user->add会直接操作数据库,不连model,比如我把控制器的$user->add改成$user->dadd,报   Think\Model:dadd方法不存在!

$user=D('User');
$id=$user->dadd(I('post.name'),I('post.phone'),I('post.id_card'),I('post.health_card'),I('post.hospitalized'),I('post.address'),I('post.contact_name'),I('post.contact_phone'));

请问这该怎么办?我的tp版本是3.2.3

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:composer引用本地git做为源库Nächster Artikel:ThinkPHP where方法详解