2013-03-06 103 views
-2

我一直在試圖在我的數據庫中添加一行,但無論我做什麼,我都一直在接收相同的錯誤。錯誤是解析錯誤:語法錯誤,意外的T_STRING。 這是我的代碼:在數據庫中插入行,錯誤

<!DOCTYPE html> 
<html> 
<body> 
<?php 
$con=mysqli_connect("mysql5.000webhost.com","********","******","*******"); 
if (mysqli_connect_errno()) 
    { 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
    } 
//Connecting to the Database works 
INSERT INTO test (`1`, `2`, `3`, `4`) VALUES (\'11\', \'11\', \'11\', \'11\'); 
mysqli_close($con); 
?> 
</body> 
</html> 
+2

嗯,如果你閱讀手冊或任何教程或有你現在發現這是一個體面的PHP編輯器。 – 2013-03-06 02:34:22

回答

1

您需要執行一個查詢 - mysqli_query()

$query = mysqli_query("INSERT INTO test (`1`, `2`, `3`, `4`) VALUES ('11', '11', '11', '11')"); 
1

刪除\在聲明中,

$query = "INSERT INTO test (`1`, `2`, `3`, `4`) VALUES ('11', '11', '11', '11')"; 

但如果列是整數,

$query = "INSERT INTO test (`1`, `2`, `3`, `4`) VALUES (11, 11, 11, 11)"; 
+1

這是正確的,但是這並沒有解決OP也缺少'mysqli_query()'/'$ sql-> query()'來實際執行'INSERT'的問題。 – Sean 2013-03-06 02:50:11

+1

@Sean我沒有在這裏展示執行,而只是要執行的語法。 ':)' – 2013-03-06 02:51:21

1

我注意到你的sql語句就像是php代碼一樣。 SQL不是由php解釋器直接解析的。您需要先將sql放入一個變量中,然後執行該語句。還有,你是逃逸單引號,不是很好

 $sql="INSERT INTO test (`1`, `2`, `3`, `4`) VALUES ('11', '11', '11', '11')"; 
    $result = $db->query($sql); 

    while ($data = $result->fetch_assoc()) 
    { 
     $retval[]= $data; 
    } 

假設$ DB是一個有效的連接

+0

爲什麼你的'$ sql'在你的'$ result = $ this-> db-> query($ sql);'?另外,爲什麼要在'INSERT'上顯示'$ result-> fetch_assoc()'? – Sean 2013-03-06 02:46:29

+0

哈哈我的錯誤我做了一個類的測試,我會編輯我的帖子 – 2013-03-06 02:50:16

+0

當我跑你的腳本它給了我錯誤「致命的錯誤:調用一個非對象的成員函數查詢()在」 – user2138160 2013-03-06 03:05:47