會員中心 | iThome online | iT邦部落格 | 小7聚樂部 | iThome download | apphome

載入中...

fsh18108

iT邦初學者
10級

請問一下php mysql 用insert into 資料寫入的問題

這個問題困擾我二天了..
前陣子我在cashfreeweb的網站有申請支援php語法的免費空間
我的需求只是要將簡單的訂購單按送出後可以將填寫的資料寫入到mysql資料庫裡
我將簡單的php網頁上傳到免費空間後,登入網站提供的phpmyadmin,送出的資料都沒問題
也就是資料寫入是正常的,但最近該免費空間好像倒了..
所以我就自己安裝了xampp的軟件,apache和mysql以及phpmyadmin都啟動正常
可是php網頁送出後,登入到phpmyadmin裡卻都沒有資料
我在phpmyadmin裡直接新增資料卻是正常的,如果將新增的sql語法複製再貼到php網頁裡執行卻是一樣新增不了
以下這段是我從phpmyadmin複製的,test是資料庫~table是資料表
我測試將aa bb cc dd ee ff的欄位寫入1的數字(寫完後有刪掉)
$sql = "INSERT INTO `test`.`table` (`aa`, `bb`, `cc`, `dd`, `ee`, `ff`) VALUES (\'1\', \'1\', \'1\', \'1\', \'1\', \'1\');";
但是在php網頁執行後一樣沒資料..而且都沒有錯誤訊息..請問一下這是什麼原因?
是php.ini、my.ini還是apache裡的config.conf裡的設定沒有設好嗎?

以下是php的語法

<p class="style1 style3">訂購的公司名稱:<?php echo $_POST['send']; ?></p>
<p class="style1 style3">聯絡人姓名:<?php echo $_POST['send2']; ?></p>
<p class="style1 style3">訂購園遊券張數:<?php echo $_POST['select2']; ?></p>
<p class="style2">訂購餐券張數:<?php echo $_POST['select3']; ?></p>
<p class="style2">聯絡電話或手機:<?php echo $_POST['send22']; ?></p>
<p class="style2">留言訊息:<?php echo $_POST['message']; ?></p>
<p class="style2">&nbsp;</p>
<p class="style1">&nbsp;</p>
<?php
$a = $_POST['send'];
$b = $_POST['send2'];
$c = $_POST['select2'];
$d = $_POST['select3'];
$e = $_POST['send22'];
$f = $_POST['message'];
mysql_connect('localhost','ms','572958') or die("connect error!");
mysql_select_db('test') or die("db error");
mysql_query("SET NAMES 'utf8'");
$query = "INSERT INTO table (aa,bb,cc,dd,ee,ff) VALUES ('$a','$b','$c','$d','$e','$f')" or die("insert error");
mysql_query($query);
?>
</body>
</html>

比較奇怪的是帳號或者資料庫名字如果打錯會出現錯誤
但是資料表打錯的話不會有錯誤,資料也都寫不進去
這跟phpmyadmin的使用者權限有關嗎?(我已將使用者權限全選了)
麻煩高手幫忙,謝謝


發佈到:發佈到Facebook 發佈到噗浪 發佈到twitter
分享時間:2010-01-27 23:14:22
▼ ADVERTISEMENT ▼

最佳解答(發問者自選)
8

回答:henryi ( iT邦初學者10級 )

時間:2010-01-28 08:45:39

fsh18108提到:
$query = "INSERT INTO table (aa,bb,cc,dd,ee,ff) VALUES ('$a','$b','$c','$d','$e','$f')" or die("insert error");
mysql_query($query);


這邊寫錯了
$queryStr = "INSERT INTO table (aa,bb,cc,dd,ee,ff) VALUES ('$a','$b','$c','$d','$e','$f')";
mysql_query($queryStr,$mysqlConnection) or die('Insert data fail');

[-隱藏]

回應

1

fsh18108 說:

請教一下..我改成這樣
<?php
$a = $_POST['send'];
$b = $_POST['send2'];
$c = $_POST['select2'];
$d = $_POST['select3'];
$e = $_POST['send22'];
$f = $_POST['message'];
$mysqlConnection=mysql_connect('localhost','ms','572958') or die("connect error!");
mysql_select_db('test') or die("db error");
mysql_query("SET NAMES 'utf8'");
$queryStr = "INSERT INTO table (aa,bb,cc,dd,ee,ff) VALUES ('$a','$b','$c','$d','$e','$f')";
mysql_query($queryStr,$mysqlConnection) or die(mysql_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 'table (aa,bb,cc,dd,ee,ff) VALUES ('0','0','0','0','0','1')' at line 1
是哪裡有問題嗎..很奇怪都寫不進去,看起來是要寫入table這個資料表時有問題
可是我確認過很多次,欄位和資料表名稱都正確阿..加了' '也是一樣..
我快瘋嚕..
謝謝回應喔

2010-02-01 12:58:47

2

fsh18108 說:

0.0
後來我資料庫刪掉重設後就正常了
謝謝大家的回應喔

2010-02-01 20:28:42

請問一下php mysql 用insert into 資料寫入的問題
回答:albertachen( iT邦初學者1級 )
時間:2010-01-28 00:56:34
10
mysql_connect("localhost","userName","passWord");
mysql_select_db("my_db", $con);
mysql_query($sql,$con)
mysql_close($con)

參考一下::


<?php
$con = mysql_connect("localhost","peter","abc123");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}

mysql_select_db("my_db", $con);

$sql="INSERT INTO Persons (FirstName, LastName, Age)
VALUES
('$_POST[firstname]','$_POST[lastname]','$_POST[age]')";

if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
echo "1 record added";

mysql_close($con)
?>
回答:scottchen( iT邦高手3級 )
時間:2010-01-28 09:38:17
6
php.ini裡面的magic_quotes_gpc = On,然後重啟apache

[-隱藏]

回應 scottchen

1

fillano 說:

ㄝ,magic_quote_gpc這個設定到php5.3會deprecated然後到php6會拿掉,所以不要依賴他比較好。用utf-8就可以避開許功蓋的問題了,除非是舊的系統。

2010-01-28 10:22:56

2

scottchen 說:

另外一個方法是修改程式,由程式來處理escape字元,例如$a = addslashes($_POST['send']);

2010-01-28 10:30:11

3

fsh18108 說:

請教一下我已經把
magic_quotes_gpc = On,然後重啟apache了
可是還是不行..

<?php
$a = $_POST['send'];
$b = $_POST['send2'];
$c = $_POST['select2'];
$d = $_POST['select3'];
$e = $_POST['send22'];
$f = $_POST['message'];
$mysqlConnection=mysql_connect('localhost','ms','572958') or die("connect error!");
mysql_select_db('test') or die("db error");
mysql_query("SET NAMES 'utf8'");
$queryStr = "INSERT INTO table (aa,bb,cc,dd,ee,ff) VALUES ('$a','$b','$c','$d','$e','$f')";
mysql_query($queryStr,$mysqlConnection) or die(mysql_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 'table (aa,bb,cc,dd,ee,ff) VALUES ('0','0','0','0','0','1')' at line 1
是哪裡有問題嗎..很奇怪都寫不進去,看起來是要寫入table這個資料表時有問題
可是我確認過很多次,欄位和資料表名稱都正確阿..加了' '也是一樣..
我快瘋嚕..
謝謝回應喔

2010-02-01 13:00:06

回應

請填寫您的回應,長度限為1,000個字,回應不計點數,也不限使用次數



 
▼ ADVERTISEMENT ▼


檢舉違規

違規事項:

*補充檢舉理由(可省略),字數不可超過100字

推薦

推薦理由:


*給回答者的鼓勵(可不填),字數不可超過100字

哈哈
毆飛
開心
抗議
落寞
睡覺
噴鼻血
No
失神
爆氣
疑惑
Orz
不耐煩
喜歡
臉紅
噎到
放手
打嗑睡
掰掰
放馬過來
敲碗
簽名
筆記
拍手
沙發
XD
無言
偷笑
翻桌
謝謝
灑花
抱抱
逃跑
炸死你
愛你
生日快樂
rock
嘆氣
下雨
衝刺
搖頭
拍照
打球
健身
駭客
射門
泡湯
踹共
唱歌
做菜

上傳圖片
▼ ADVERTISEMENT ▼

邦友收藏動態

最新收藏最多人推最多人收

新增收藏

收藏到iT邦 書籤小工具

「收藏到iT邦」讓你更方便收藏站外文章。可用下面其中一種方法安裝:

  • 拖拉上面的「收藏到iT邦」連結到瀏覽器的書籤列
  • 在連結上方按右鍵,選擇「加到我的最愛」

之後看到喜歡的站外文章,只要點一下「收藏到iT邦」,就會收藏起來囉

安裝「收藏快捷鍵」

安裝「收藏快捷鍵」,可以讓邦友直接透過Google工具列上的按扭,快速收藏站內、站外的網頁。

訂閱每日摘要

iT邦幫忙即日起提供「每日摘要」給尚未註冊的邦友,只要輸入您的E-mail,每日就可以收到最新的發問與分享