2013-04-03 79 views
1

我有麻煩讓我的PHP腳本通過PHP運行在我的LAMP服務器中。 繼承人我的代碼,我有問題。無法讓我的mysql_query()在我的php腳本中工作

# Insert Statement 
$insert  ="INSERT INTO ACRC VALUES('','','1C3-4A','$fs','$acrc1c3_4afs'); 
INSERT INTO ACRC VALUES('','','1C3-4A','$fi','$acrc1c3_4afi'); 
INSERT INTO ACRC VALUES('','','1C3-4A','$fo','$acrc1c3_4afo'); 
INSERT INTO ACRC VALUES('','','1C3-4B','$fs','$acrc1c3_4bfs'); 
INSERT INTO ACRC VALUES('','','1C3-4B','$fi','$acrc1c3_4bfi'); 
INSERT INTO ACRC VALUES('','','1C3-4B','$fo','$acrc1c3_4bfo'); 
INSERT INTO ACRC VALUES('','','1C3-12A','$fs','$acrc1c3_12afs'); 
INSERT INTO ACRC VALUES('','','1C3-12A','$fi','$acrc1c3_12afi'); 
INSERT INTO ACRC VALUES('','','1C3-12A','$fo','$acrc1c3_12afo'); 
INSERT INTO ACRC VALUES('','','1C3-12B','$fs','$acrc1c3_12bfs'); 
INSERT INTO ACRC VALUES('','','1C3-12B','$fi','$acrc1c3_12bfi'); 
INSERT INTO ACRC VALUES('','','1C3-12B','$fo','$acrc1c3_12bfo');"; 
echo "$insert"; 
mysql_query($insert) or die(mysql_error()); 
echo "$insert"; 
?> 

運行此命令將返回以下結果。

[[email protected] html]# php snmp.php 
ACRC Unit 1C3-4A : Fan Speed 73.3 % : Fluid In Temperature 47.2 F : Fluid Out Temperature 55 F 
ACRC Unit 1C3-4B : Fan Speed 74 % : Fluid In Temperature 47.8 F : Fluid Out Temperature 53.5 F 
ACRC Unit 1C3-12A : Fan Speed 28.9 % : Fluid In Temperature 44.7 F : Fluid Out Temperature 46.4 F 
ACRC Unit 1C3-12B : Fan Speed 28.5 % : Fluid In Temperature 47.1 F : Fluid Out Temperature 62.9 F 
INSERT INTO ACRC VALUES('','','1C3-4A','Fan Speed','73.3'); 
INSERT INTO ACRC VALUES('','','1C3-4A','Fluid Temperature In','47.2'); 
INSERT INTO ACRC VALUES('','','1C3-4A','Fluid Temperature Out','55'); 
INSERT INTO ACRC VALUES('','','1C3-4B','Fan Speed','74'); 
INSERT INTO ACRC VALUES('','','1C3-4B','Fluid Temperature In','47.8'); 
INSERT INTO ACRC VALUES('','','1C3-4B','Fluid Temperature Out','53.5'); 
INSERT INTO ACRC VALUES('','','1C3-12A','Fan Speed','28.9'); 
INSERT INTO ACRC VALUES('','','1C3-12A','Fluid Temperature In','44.7'); 
INSERT INTO ACRC VALUES('','','1C3-12A','Fluid Temperature Out','46.4'); 
INSERT INTO ACRC VALUES('','','1C3-12B','Fan Speed','28.5'); 
INSERT INTO ACRC VALUES('','','1C3-12B','Fluid Temperature In','47.1'); 
INSERT INTO ACRC VALUES('','','1C3-12B','Fluid Temperature Out','62.9');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 'INSERT INTO ACRC VALUES('','','1C3-4A','Fluid Temperature In','47.2');INSERT IN' at line 2 

現在,我已經採取然後從該結果和手動把它放在我的MySQL和它的工作因爲是雖然它返回2警告每個insert語句。 第一個值是自動增量id值,第二個值是時間戳。

對於後續問題,我的時間戳返回全0。

你們能幫我解答嗎?我已經很長時間潛伏了,這個網站在過去幫了我很多。

+0

[爲什麼不應該使用mysql_ *函數在PHP?](HTTP:// stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php) –

回答

1

您不能像這樣發送「INSERT INTO」。但你可以做到以下幾點:

$insert = "INSERT INTO ACRC VALUES 
('','','1C3-4A','$fs','$acrc1c3_4afs'), 
('','','1C3-4A','$fi','$acrc1c3_4afi'), 
('','','1C3-4A','$fo','$acrc1c3_4afo'), 
('','','1C3-4B','$fs','$acrc1c3_4bfs'), 
('','','1C3-4B','$fi','$acrc1c3_4bfi'), 
('','','1C3-4B','$fo','$acrc1c3_4bfo'), 
('','','1C3-12A','$fs','$acrc1c3_12afs'), 
('','','1C3-12A','$fi','$acrc1c3_12afi'), 
('','','1C3-12A','$fo','$acrc1c3_12afo'), 
('','','1C3-12B','$fs','$acrc1c3_12bfs'), 
('','','1C3-12B','$fi','$acrc1c3_12bfi'), 
('','','1C3-12B','$fo','$acrc1c3_12bfo');"; 

作爲參考:http://www.electrictoolbox.com/mysql-insert-multiple-records/

+0

這對我的需求現在工作,但正如其他人建議我需要學習mysqli未來的需求。謝謝你的幫助。 –

1

mysql_query()不允許您一次執行多個查詢。您將有一個執行所有這些之一,如果你喜歡使用過時mysql_*擴展

PHP Manual

mysql_query() sends a unique query (multiple queries are not supported) to the currently active database on the server that's associated with the specified link_identifier.

請參見本說明的是著名的紅色方塊會

This extension is deprecated as of PHP 5.5.0, and will be removed in the future. Instead, the MySQLi or PDO_MySQL extension should be used.

1

使用Mysqli'smulti_query功能運行多個查詢。

mysql_*不允許運行multi query

+0

你對Mysqli有什麼好的資源嗎?我對PHP擴展還是比較新的。 –

0

對於你的跟進問題,關於您會收到錯誤:這些會通過您使用空字符串什麼,我認爲是引起idtimestamp在您的查詢。

你最好要包括你插入到您的INSERT查詢哪些行,並讓其他值(如荷蘭國際集團auto_incrementid S),以填補自己英寸

例如,假設你的表有行:id,time,val1,val2,val3。您當前語句就像執行:

INSERT INTO ACRC (id, time, val1, val2, val3) VALUES('','','1C3-4A','$fi','$acrc1c3_4afi'); 

因此MySQL嘗試插入空字符串到ID和時間,然後剛剛插入的是該行「空」,(因此,對於整數,這是0 )。如果您不想嘗試將某些內容插入到id列中,那麼這往往會導致問題,如果您有行應該是唯一的行 - auto_increment將爲您做。

相反,使用:

INSERT INTO ACRC (val1, val2, val3) VALUES ('1C3-4A', '$fi', '$acrc1c3_4afi') 

而忽略其他行,讓他們填寫自己

+0

我會給這個鏡頭謝謝。 –