php pdo更新与变量查询
问题描述:
我希望有人能指出我的错误与此更新,我尝试过各种方式,但似乎无法得到它的工作,可能是一个简单的错误,但我只是可以'似乎找不到它。php pdo更新与变量查询
function set_live($row_id, $mobile_number)
{
global $conn;
$live = 1;
$sql = "
UPDATE
connections
SET
live = :live,
voice_number = :mobile_number
WHERE
id = :row_id";
$stmt = $conn->prepare($sql);
$stmt->bindParam(':mobile_number', $mobile_number, PDO::PARAM_INT);
$stmt->bindParam(':row_id', $row_id, PDO::PARAM_INT);
$stmt->bindParam(':live', $live, PDO::PARAM_INT);
$stmt->execute();
echo "Record edited successfully";
$conn=null;
}
$conn
是PDO连接与SELECT的等 所有变量都是数字和所有呼应行,所以在功能 我可以运行在phpMyAdmin实际值的查询工作,它的工作原理确定
答
只需更换这行
$stmt->bindParam(':mobile_number', $mobile_number, PDO::PARAM_INT);
与此
$stmt->bindParam(':mobile_number', $mobile_number, PDO::PARAM_STR);
因为电话号码长度比整数多。
+0
在我的情况下,我也曾在同一页面中使$ conn变量为null! – ruraldev
答
为什么不尝试使用数组?这种做法可能做的伎俩为您提供:
<?php
function set_live($row_id, $mobile_number){
global $conn;
$live = 1;
$sql = "UPDATE connections SET live=:live, voice_number=:mobile_number WHERE id=:row_id";
$stmt = $conn->prepare($sql);
$params = array(
"live" =>$live,
"mobile_number" =>$mobile_number,
"row_id" =>$row_id,
);
$stmt->execute($params);
echo "Record edited successfully";
$conn=null;
}
如何调用'set_live'函数? – Saty
你为什么使用'global'变量?你为什么不把它传递给那个方法,或者更好的是,如果你用它来操纵数据库,那么它会把它变成类的成员(当然,如果这是一个类)?乍一看,它似乎是好的(如果'$ conn'是你声称的那样;你是否试图转储'$ row_id'和'$ mobile_number'?你试过转储'$ conn'吗? – DonCallisto
你应该添加错误处理/让PDO抛出异常。如果你在每次使用它时将它设置为'null',你可能没有数据库连接... – jeroen