2013-03-26 101 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