> 백엔드 개발 > PHP 튜토리얼 > mysql 向数据库中插入一项数据解决办法

mysql 向数据库中插入一项数据解决办法

WBOY
풀어 주다: 2016-06-13 12:03:44
원래의
1210명이 탐색했습니다.

mysql 向数据库中插入一项数据
最后得出的结果就是fail
orderNo是订单号应该自增的,但是我不会,所以就只是随便赋了一个值
    session_start();
    $corn=mysql_connect('localhost','root','');
mysql_query('set names UTF8',$corn);
    if (!$corn) {
    die('Could not connect: ' . mysql_error());
    }
    $db_selected=mysql_select_db( "daydream" ,$corn);
    if (!$db_selected) {
        die ('Can\'t use foo : ' . mysql_error());
    }
$time=date("Ymd");
echo $time;
$id=$_GET['id'];
$presult=mysql_query("select * from production where proNo=$id");
$pinfo=mysql_fetch_array($presult);
$sum=$_POST['proNum']*$pinfo['proPrice'];
$num=12;
        $sql="INSERT INTO order(orderNo,cusNo,orderDate,orderSum,orderAddress) VALUES  ('$num','$_SESSION[admin]',   '$time','$sum','$_POST[orderAddress]')";
        if (!mysql_query($sql,$corn))
            echo "fail";
        else 
            echo "success";
?>
------解决方案--------------------
你把 echo "fail" 改成
echo mysql_error();
就真相大白了!

orderNo 是自增的,也就是主键
而主键是不可重复的
你给他赋予 $num 的值,那就有可能违规了
既然你在插入时开列了字段名,那自增字段就不需要也在其中了
$sql="INSERT INTO order(cusNo,orderDate,orderSum,orderAddress) VALUES  ('$_SESSION[admin]',   '$time','$sum','$_POST[orderAddress]')";
------解决方案--------------------
orderNo 应该设置为自动编号和主键

 $sql="INSERT INTO order(cusNo,orderDate,orderSum,orderAddress) VALUES  ('$_SESSION[admin]',   '$time','$sum','$_POST[orderAddress]')"; 
echo $sql;
贴出结果看看


------解决方案--------------------
让你复制我的代码就那么难吗?

`` 是Tab键上方的字符,不是单引号。

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿