嗨,我正在尝试使用PHP PDO在我的MySQL数据库上运行INSERT查询。
我在add方法中放置一个数组:
键值数组的实例化:
$agentList = array(
'Sport'=>$_POST['agent-add-sport'],
'Address1'=>$_POST['agent-add-addr1'],
'City'=>$_POST['agent-add-city'],
);
使用数组作为参数进行函数调用:
function addAgent($agentList)
然后我执行bindParam将键值对中的值绑定到PDO变量:
$sqlStr = "INSERT INTO agents (Sport, Address1, City) VALUES (:sport, :address1, :city)";
include_once $_SERVER['DOCUMENT_ROOT'].'/inc/Database.class.php';
$db = new Database();
$conn = $db->getConnection();
$query = $conn->prepare($sqlStr);
$sqlStr->bindParam(':sport',$agentList['Sport'],PDO::PARAM_STR);
$sqlStr->bindParam(':address1',$agentList['Address1'],PDO::PARAM_STR);
$sqlStr->bindParam(':city',$agentList['City'],PDO::PARAM_STR);
但由于某种原因,我一直收到这个错误:
“致命错误:在非对象”
上调用成员函数bindParam()
我在var_dump
后面的$query
变量上执行了$query = $conn->prepare($sqlStr);
,以查看sql字符串是否已成功准备好。这就是它给我的:
“object(PDOStatement)#3(1){[”queryString“] => string(76)”INSERT INTO代理(体育,地址1,城市)价值观(:运动,地址1,:城市)“ }“
基于它在PHP的PDO准备文档中所说的内容:
如果数据库服务器成功准备语句,PDO :: prepare()将返回PDOStatement对象。如果数据库服务器无法成功准备语句,PDO :: prepare()将返回FALSE或发出PDOException(取决于错误处理)。
我的var_dump
生成一个对象,因此它准备得当。
所以我不确定是什么问题。如果有人可以帮助我,我将非常感激。
谢谢!