mysql 向資料庫中插入一項資料

來源:互聯網
上載者:User
最後得出的結果就是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]')";

因為我對auto_increasement不熟悉 我也沒把orderNo設為主鍵 但是 剛剛按照你說的改了一下 報錯如下:
Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'order(cusNo,orderDate,orderSum,orderAddress) VALUES ('1', '20140731','94','2')' at line 1
就還是我的插入文法有問題還是什麼........

order 加上逸出字元試試。
$sql="INSERT INTO `order`(cusNo,orderDate,orderSum,orderAddress) VALUES ('$_SESSION[admin]', '$time','$sum','$_POST[orderAddress]')";

加了逸出字元沒有用啊

現在還報什麼錯?同時貼出show create table order; 看看。

錯誤還是上面那個:
Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'order(cusNo,orderDate,orderSum,orderAddress) VALUES ('2', '20140731','94','111'' at line 1
說是有語法錯誤
我的資料表是這樣的(這是一張訂單表 用於購買時產生訂單記錄的)

orderNo 應該設定為自動編號和主鍵

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

現在你的$sql 是如何寫的?貼出來看看。是不是複製我#3 的代碼。

結果是:
INSERT INTO order(cusNo,orderDate,orderSum,orderAddress) VALUES ('2', '20140731','94','1111')
Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'order(cusNo,orderDate,orderSum,orderAddress) VALUES ('2', '20140731','94','1111' at line 1
My Code:就是和#3一樣的
$sql="INSERT INTO order(cusNo,orderDate,orderSum,orderAddress) VALUES ('$_SESSION[admin]', '$time','$sum','$_POST[orderAddress]')";
echo $sql;
echo"
";
if (!mysql_query($sql,$corn))
die('Error: ' . mysql_error());
else
echo "success";
?>

orderfNo已經設為主鍵 並且自增了

`order` 注意前後轉義符。

改成這樣:
$sql="INSERT INTO 'order' (cusNo,orderDate,orderSum,orderAddress) VALUES ('$_SESSION[admin]', '$time','$sum','$_POST[orderAddress]')";
echo $sql;
沒差耶 錯誤提示變成這樣了:
INSERT INTO 'order' (cusNo,orderDate,orderSum,orderAddress) VALUES ('2', '20140731','94','1111')
Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''order' (cusNo,orderDate,orderSum,orderAddress) VALUES ('2', '20140731','94','1' at line 1

因為我在做一個簡單的購物網站 ,
註冊都通了 就是說使用者表可以添加資訊了,
到購買這裡死活加不進去 死磕了好幾天了 我覺得大致的原理是一樣的 可是都沒成功
拜託大家幫幫忙,謝謝啦

讓你複製My Code就那麼難嗎?

`` 是Tab鍵上方的字元,不是單引號。

成功了
謝謝樓上的大哥!!!!!!!!!!!!好棒啊 我真以為是單引號。。。。。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.