我希望有人可以指出我在这个更新中出错的地方,我已经尝试了各种方法,但似乎无法让它工作,可能是一个简单的错误,但我似乎无法找到它。
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
是与SELECT等一起使用的PDO连接
所有变量都是数字,所有回声都可以,因此在函数中
我可以使用phpmyadmin中的实际值运行查询,它可以正常工作
答案 0 :(得分:1)
只需替换此行
$stmt->bindParam(':mobile_number', $mobile_number, PDO::PARAM_INT);
用这个
$stmt->bindParam(':mobile_number', $mobile_number, PDO::PARAM_STR);
因为电话号码长度超过整数。
答案 1 :(得分:-1)
为什么不尝试使用数组?这种方法可能适合你的伎俩:
<?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;
}