2012-07-13 66 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