2012-07-13 43 views
1

我試圖讓一個PHP日曆,作爲項目的一部分,我在這裏執行一些SQL使用PHP:多個SQL語句引起的錯誤,通過PHP

mysql_select_db("waycov_dtm", $con); 

$data="'Placeholder Text'"; 

$sql="INSERT INTO waycov_dtm.calDates (dateID, day, month, year) 
VALUES (" . $dateID . ", " . $day . ", " . $month . ", " . $year . "); 
INSERT INTO waycov_dtm.calData (dateID, data, memberID) 
VALUES (" . $dateID . ", " . $data . ", 1);"; 

echo $sql; 

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

mysql_close($con); 

當此執行,我得到的以下的(回送SQL,然後將錯誤):

INSERT INTO waycov_dtm.calDates (dateID, day, month, year) VALUES (7072012, 7, 07, 2012); INSERT INTO waycov_dtm.calData (dateID, data, memberID) VALUES (7072012, 'Placeholder Text', 1);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 'INSERT INTO waycov_dtm.calData (dateID, data, memberID) VALUES (7072012, 'Placeh' at line 3 

如果我取出任何一個插入statment,其他運行,但兩者一起導致此??

回答

4

使用這樣的:

$sql="INSERT INTO waycov_dtm.calDates (dateID, day, month, year) 
VALUES (" . $dateID . ", " . $day . ", " . $month . ", " . $year . ")"; 
$sql_second = "INSERT INTO waycov_dtm.calData (dateID, data, memberID) 
VALUES (" . $dateID . ", " . $data . ", 1);"; 

if (!mysql_query($sql,$con) || !mysql_query($sql_second,$con)) 
{ 
    die('Error: ' . mysql_error()); 
} 

從手冊:

的mysql_query()發送一個唯一的查詢(多個查詢不 支持)

採用不鼓勵mysql_query。使用MySQLi或PDO。

+0

+1 - 任何想法爲什麼它會聲稱在「佔位符」一詞的中途發生錯誤?是否由於緩衝? – ametren 2012-07-13 18:50:20

+1

它似乎實際上,錯誤是在第二個查詢開始之前(在INSERT之前) – 2012-07-13 18:51:13

+0

啊,我明白你的意思了。它切斷第二個查詢的事實讓我失望。 ''Placeh'在第3行' – ametren 2012-07-13 18:52:27