2013-03-26 103 views
0

我目前正在嘗試從HTML表單(Proform.html)發送數據到MYSQL數據庫。我無法弄清楚如何解決這個不斷出現的問題,因爲我是PHP新手,我一直在收到的錯誤消息。PHP和MYSQL,試圖發送數據到數據庫

"Fatal error: Call to a member function query() on a non-object in C:\xampp\htdocs\php\Proform.php on line 22"

因爲我已經使用了幾種不同的引用來創建的,我已經mixxed PHP的兩個不同realeases碼這個頁面這可能是possable。雖然幫助會appriciated反正代碼如下。

<?php 

$dbname='*****'; 
$dbhost='localhost'; 
$dbpass='******'; 
$dbuser='******'; 






$dbhandle = mysql_connect($dbhost, $dbuser, $dbpass) 
    or die("Unable to connect to MySQL"); 
echo "Connected to MySQL<br>"; 


//select a database to work with 
$selected = mysql_select_db("ecig",$dbhandle) 
    or die("Could not select examples"); 

$q = $dbhandle->query("INSERT INTO Persons (First_Name, Last_Name) 

VALUES ('$_POST[First_Name]', yes)"); 



if (array_key_exists ('check_submit', $_POST)) 

echo "Your Name is : {$_POST['First_Name']}<br />"; 
echo "Your Second Name is : {$_POST['Second_Name']}<br />"; 
echo "Your Email Address is : {$_POST['Email_Address']}<br />"; 
echo "Your Password Is : {$_POST['Password']}<br />"; 

?> 
+1

[**在新的代碼,請不要使用'mysql_ *'功能**](http://bit.ly/phpmsql)。他們不再被維護[並被正式棄用](https://wiki.php.net/rfc/mysql_deprecation)。看到[**紅框**](http://j.mp/Te9zIL)?學習[*準備的語句*](http://j.mp/T9hLWi),並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [這篇文章](http://j.mp/QEx8IB)將幫助你決定哪個。如果你選擇PDO,[這裏是一個很好的教程](http://j.mp/PoWehJ)。 – 2013-03-26 03:58:37

+0

僅供參考,您也可以[SQL注入](http://stackoverflow.com/q/60174) – 2013-03-26 03:58:52

+0

連接字符串使用不支持數據庫調用的mysql作爲對象。如果你想使用它,請使用mysql_fetch_array,但不建議使用mysql調用。相反,我建議使用$ con = mysqli_connect($ dbhost,$ dbuser,$ dbpass,$ dbname)切換到mysqli; – 2013-03-26 04:01:47

回答

1

有一個問題在您的查詢

爲什麼你打電話給曲使用數據庫連接字符串。

你要這樣稱呼它:

$con=mysql_connect($dbhost,$dbuser,$dbpass,$dbname); 
$res=mysql_query("INSERT INTO Persons (First_Name, Last_Name) VALUES('$_POST[First_Name]', yes)"); 
mysql_close(); 
+0

嗨,我試圖這樣做,而另一種方式,但數據沒有被提交到形式任何想法? – user2210046 2013-03-26 05:00:08

+0

可能有兩種類型的問題。你在那裏得到任何錯誤? – chintan 2013-03-26 05:03:16

+0

您只需添加或死(mysql_error());在查詢結束時,如果你能得到任何類型的錯誤,那麼我可以幫你。 – chintan 2013-03-26 05:04:40

0

mysql_connect不返回任何對象....所以它不具備任何功能或屬性,您可以訪問使用->運營商。它返回一個連接標識符

更換

$dbhandle->query("INSERT INTO Persons (First_Name, Last_Name) 
VALUES ('$_POST[First_Name]', yes)");` 

mysql_query("INSERT INTO Persons (First_Name, Last_Name) 
VALUES ('$_POST[First_Name]', yes)") 

我建議你開始學習的mysqli或PDO,因爲MySQL的功能都被延遲,並不再保持

+0

你可以看到http://www.php.net/manual/en/ref.mysql.php如果你想進一步瞭解mysql函數 – alwaysLearn 2013-03-26 04:11:03

+0

感謝這工作和解決了問題! – user2210046 2013-03-26 04:58:38

+0

偉大的幫助你... :) – alwaysLearn 2013-03-26 05:01:45