这是我的问题,我有一个带有ave方法的类,我想传递一个Mysql DB链接到它,所以我从类创建一个新对象,并调用saveProperty方法,并在我的主文件中创建了一个MySQL连接,并将链接保存在一个名为$ db的var中,所以当我调用该方法时,它会链接到:saveProperty($ db)。
但是保存数据我得到一个错误:
警告:mysql_select_db():提供的参数不是第75行的C:\ wamp \ www \ aqaria \ classes \ property.php中的有效MySQL-Link资源
警告:mysql_query():提供的参数不是第99行的C:\ wamp \ www \ aqaria \ classes \ property.php中的有效MySQL-Link资源
这意味着我没有通过链接吗?但是如何?
这是我的一些代码:
<?php
class test
{
function saveProperty($db)
{
$sql = "<<query goes here>>"
mysql_query($sql,$db);
if(mysql_affected_rows()>0)
echo "<h3>Data was saved</h3>";
else
echo "<h3>Error saving data</h3>";
}
}
这是调用代码:
$db = mysql_connect('localhost','root','');
mysql_select_db("aqaria",$db);
$property = new Property();
$property->saveProperty($db);
虽然如果我将gloabl关键字添加到类的方法中它会工作,我想知道我是否可以通过数据库连接的链接?
答案 0 :(得分:1)
毫无疑问,可以在方法中传递db_links。
警告:mysql_select_db():提供 参数不是有效的MySQL-Link 资源 C:\ WAMP \ WWW \ aqaria \类\ property.php 第75行
使用mysql_error()
检查数据库凭据和输出答案 1 :(得分:0)
您的函数中没有数据库对象。
在顶部添加:
global $db;
编辑:要将其传递到您的功能中,您需要执行此操作:
$db = mysql_connect('localhost','root','') or die(mysql_error());
mysql_select_db("aqaria", $db) or die(mysql_error());
agar_add_offer($someDataFromSomewhere, $db);
function aqar_add_offer($data, $db)
{
$property = new Property();
//do some data manipulation
$property->saveProperty($db);
}
答案 2 :(得分:0)
您是否尝试过参考?
此外,您可能希望在mysql_affected_rows()
function saveProperty(&$db)
{
$sql = "<<query goes here>>"
mysql_query($sql,$db);
if(mysql_affected_rows($db)>0)
echo "<h3>Data was saved</h3>";
else
echo "<h3>Error saving data</h3>";
}
答案 3 :(得分:0)
我只是在每个类的方法中使用全局$ db我需要使用mysql。 $ db是在课外定义的。
是否有一种方法我不必在每种方法中使用'global $ db'。