台灣最大程式設計社群網站
線上人數
888
 
會員總數:246713
討論主題:190131
歡迎您免費加入會員
討論區列表 >> MySQL >> 遇到讀寫問題,煩請大大幫忙解答
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
遇到讀寫問題,煩請大大幫忙解答
價值 : 50 QP  點閱數:1138 回應數:7
樓主

Alex
門外漢
0 2
62 14
發送站內信

捐贈 VP 給 Alex
個人設定與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
"1111".(省略) at line 1

煩請大大幫忙看看那邊出了問題導致無法蓋上,謝謝!



<?php
session_start();
if( $_SESSION["login_session"]!=true ){
header("Location: ../../login.php");
}
$user_name = $_SESSION['user_name'];
$user_permission = $_SESSION['user_permission'];
$checknum = null;

if( isset($_GET['query_checkno']) ) {
$checknum = $_GET['query_checkno'];
}

$link = mysql_connect('localhost', 'AAA', 'AAA') or die("資料庫無法連接\n");
mysql_select_db('e-forms_opening_check', $link);
mysql_query("SET NAMES utf8");

$sql = "SELECT * FROM `XXXXXXXX` WHERE `checkno`='".$checknum."'";

$result = mysql_query($sql, $link);
$row = mysql_fetch_array($result);

if( isset($_GET['checknum']) ) {
$checknum = $_GET['checknum'];
}

if( isset($_GET['submit_checknum']) ) {
$checknum = $_GET['submit_checknum'];

$temp = preg_split('[-]',$checknum);
$shift = $_SESSION['current_shift'];
$area = $temp[2];
$station = $temp[3];
$machine = $temp[4];
$number = $temp[5];
$time = $temp[6];
}

if( isset($_GET['data_array']) ){
$data_array = preg_split('[,]',$_GET['data_array']);

$field = array("date","time","shift","area","station","machine","number","checkno","prepared_by_person","doc_no","1","2","3","4","5","6","7");
$value = array(date("Y-m-d"),$time,$shift,$area,$station,$machine,$number,$checknum,$user_name,"AAAAAAAA)");

$value_Index = 10;
for( $i=0; $i<count($data_array); $i++ ){
$value[$value_Index++] = $data_array[$i];
}

$temp1 = implode("`,`",$field);
$temp2 = implode("','",$value);

$sql_update = "update `XXXXXXXX` Set temp1='{$temp1}',temp2='{$temp2}'";
if (mysql_query($sql_update, $link)) {
echo '<script type="text/javascript">alert("修改成功!!\nFinish!!")</script>';
header("Refresh: 0.1; url=..\..\main.php");
}
else{
echo '<script type="text/javascript">alert("修改失敗!!\nError!!\n'.mysql_error().'")</script>';
header("Refresh: 0.1; url=..\..\main.php");
}
mysql_close($link);
}

?>

搜尋相關Tags的文章: [ 資料覆蓋 ] , [ Mysql ] , [ php ] ,
本篇文章發表於2015-11-13 09:57
== 簽名檔 ==
非資工相關科系,若發問有點白請多多包涵。
1樓
回應

浩瀚星空
捐贈 VP 給 浩瀚星空 檢舉此回應
1.請善用程式標簽

依照你的錯誤訊息代表的是sql語法不正常。
由於你並未用程式標簽。比較難跟你說明。

不過大約知道你可能的問題是發生在
$temp2 = implode("','",$value);

這是假設你的$value值是Array('a','b')
你的sql語法後面就會變成

temp2='a','b';

這樣子用看的也知道sql語法就不正確了。
本篇文章回覆於2015-11-13 10:25
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

Alex
捐贈 VP 給 Alex 檢舉此回應
Dear 大大

可是原始網頁檔案是可以存入的,存入Mysql也是正確的,但是現在是修改資料時,發生問題,

$value = array(date("Y-m-d"),$time,$shift,$area,$station,$machine,$number,$checknum,$user_name,"AAAAAAAA)");

請問您說的程式標籤是什麼意思?
本篇文章回覆於2015-11-13 17:20
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

浩瀚星空
捐贈 VP 給 浩瀚星空 檢舉此回應
不要去說什麼原始檔案可以存入的問題。因為那不是你用的東西。
配置的方式也是不同。

重點是,我可以保証的說,你一定是對原始檔案的寫法不了解。才會發生這樣的事。

我上面說了,光看你後面輸出的語法就已經是不正確了。
你因該要往這方面去想。而不是說「我明明照抄使用了,為何不能動,原來的可以啊」

會不能用的原因,一定是你對參數的用意不了解。
原來的可以用???但不能符合你要的東西就是不能用的東西。這點道理你因該要懂的。

程式標簽,就是這堛瑤s輯器上。不是有很多「c語言」「js」「vb」......這些嗎???
將程式碼放到這些標簽的內容內。就會出現行號。並且會依照程式的排版顯示。不會自動靠左。(不覺得你的程式碼這樣很難判斷嗎??)

我只注意到你這邊的問題


其實看你這樣寫,就可以明白你一定是對原來檔案的東西不了解。才會變成這樣。

這邊一看就知道。其$field就是欄位值。$value是資料值。
所以才會有這樣的結合文字串的方式。

但你用錯了~~~~你將兩個都當資料值使用。自然就出錯了。


但你改成update用的set語法。不過你不了解它的用意是做什麼用的。
我用簡單的說明好了。你可以在那段 $sql_update 下放個echo $sql_update;
然後看一下它實際解讀出來的sql語法是什麼。
如果你對sql語法熟的話。自然就可以看出問題在哪了。

如果你對sql語法不熟。真不知道發生什麼事。我再來告訴你怎麼修改。
但我希望你自行去了解為何不能運行。
認真來說,這已經不是mysql的問題了。而是php的問題了。
本篇文章回覆於2015-11-17 14:47
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

Alex
捐贈 VP 給 Alex 檢舉此回應
謝謝大大的回應,有把echo $sql_update;加入



得到
修改失敗!!
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
"1111".(省略) at line 1

update 'XXXXXX' Set temp1='省略'....,temp2 = '省略'....
輸出的數值還是一樣的,結果反而無法存入進去,

小弟確實不是資工相關的,煩請指導一下,謝謝。
本篇文章回覆於2015-11-23 17:14
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
最有價值解答

浩瀚星空
捐贈 VP 給 浩瀚星空 檢舉此回應
那就請你提供你的資料表節構。還是你打算做什麼事。

我感覺你已經是完全搞混了。

簡單來問好了。你的xxxxx資料表內。有temp1欄位嗎???那是要存什麼???
本篇文章回覆於2015-11-25 10:23
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
作者回應

Alex
捐贈 VP 給 Alex 檢舉此回應
原始的網頁設計說明如下,主要是查詢過往的紀錄,並且顯示在原始填寫表單的頁面方式呈現,





本篇文章回覆於2015-11-25 14:51
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
作者回應

Alex
捐贈 VP 給 Alex 檢舉此回應
自行加設一些功能,欲綁訂人員權限後,方可顯示並進行解除鎖定,進行資料變更後再行上傳覆蓋原始資料,
所以才會顯示上述問題,
變更後程式碼如下:


本篇文章回覆於2015-11-25 14:53
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.