iT邦幫忙

0

正在自學php和mysql 剛學到database的新增 修改 刪除 查詢 問題是已經程式碼已經打好了 也執行成功了 可database裡面的東西卻沒有變化

如題

<?php
include 'database.php';

?>


<html>
    <head>
        <title>TODO supply a title</title>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
    </head>
    <body>
        <form action="do_insert_action.php" method="post">
            电影:<select name="first">
                <option value="玩命关头7">玩命关头7</option>
                <option value="海滩救护队">海滩救护队</option>
                <option value="神力女超人">神力女超人</option>
                <option value="加勒比海盗">加勒比海盗</option>
                <option value="神偷奶爸3">神偷奶爸3</option>
                </select><br/>
            姓名:<input type="text" name="customer"><br/>
            數量:<input type="text" name="id"><br/>
            時間:<input type="text" name="time"><br/>
            聯絡方式:<input type="text" name="contact_number"><br/>
           <input type="submit" name="buy" value="购买">
            
            
            
        </form>
    </body>
</html>
<?php
include 'database.php';
$first=$_POST['first'];
$customer=$_POST['customer'];
$contact_number=$_POST['contact_number'];
$id=$_POST['id'];
$time=$_POST['time'];

try{
    $sql="INSERT INTO drama (name,id,time,customer,contact_number) VALUES ('$first','$id','$time','$customer','$contact_number')";
    $count=$conn-->exec($sql);
   if($count<1){
       $msg="失敗";
   }
 else {
       $msg="成功";
   }

} catch (Exception $ex) {
       echo $ex->getMessage();
}

?>

<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <form action="index.php" method="post"></form>
      <?php echo $msg ?>
    </body>
</html>

能否幫小弟看看上述程式碼哪裡錯了?(已確定連接到database了,因為查詢的動作已成功,可新增的動作就是無法完成)

$conn-->exec(),你確定有這寫法?
再來,如果這有回傳任何東西,你的$count就不會是0,你有沒有把$count列出來看看內容是什麼?最後,你php.ini的display_errors有打開嗎?
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
0
小魚
iT邦大師 1 級 ‧ 2017-06-17 08:17:37

我猜是你用到MySql的保留字了,至少time這個字不能用,建議所有的資料表跟欄位都加上``(鍵盤左上方、數字1左邊那個鍵),所以原Sql改成

INSERT INTO `drama` (`name`,`id`,`time`,`customer`,`contact_number`) VALUES ('$first','$id','$time','$customer','$contact_number')

試試看

0
union9999
iT邦新手 5 級 ‧ 2017-06-18 09:20:25

直接到 phpmyadmin 把語法在資料庫上執行 看看結果是什麼 這樣比較準

0
混水摸魚
iT邦研究生 2 級 ‧ 2017-06-19 10:38:51

你先確定資料庫能不能連線…
再來先手動建立一筆資料
先select 看能不能撈出資料
再來測inster語法
排除資料庫錯誤後再寫程式

小魚 iT邦大師 1 級 ‧ 2017-06-19 12:51:37 檢舉

他有說查詢可以成功啊,
所以我覺得應該是語法或是函式內容的問題

@小魚 他只有說「執行成功」,並沒有說「查詢成功」。
而他的執行成功,會不會只是因為沒有吐出error?
比如說php.ini的display_errors忘了設定On之類的……
我覺得你回答問題不要這麼燥進果斷,如果你想當個診脈的醫生,最好別忘記:望、聞、問、切

0
orzzro
iT邦新手 5 級 ‧ 2017-06-21 14:38:11

$conn-->exec 有鬼

一般會確認連線 再確認查詢 DB 先用工具塞一筆資料
然後看可否取出在網頁上

上述都可以,INSERT update 就不是問題了 (只差權限問題了)

我要發表回答

立即登入回答