PHP PDO插入查询产生致命错误

时间:2017-12-11 18:34:28

标签: php mysql pdo

嗨,我正在尝试使用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生成一个对象,因此它准备得当。

所以我不确定是什么问题。如果有人可以帮助我,我将非常感激。

谢谢!

0 个答案:

没有答案