嗨,我正在创建一个android应用程序,我目前处于停顿状态,因为我的sql技能没有达到标准。我使用json。运行以下php.
情况:我正在检查表列(users_watched),看看user_id是否存在基于title_text的内部,因为它是一个数字,我正在使用,1,(示例)逗号围绕数字,所以它不会与101这样的东西混淆,并返回该值。如果user_id不在行中,则将其添加到字符串的末尾。
文本数据: user_id ="10"- watched_title ="video_title"——temp_user_id = ', 10日
$user_id = $_POST["user_id"];
$watched_title = $_POST["watched_title"];
$temp_user_id = $_POST["temp_user_id"];
$like_input = "'%".$temp_user_id."%'";
$statement = mysqli_prepare($con, "UPDATE videos SET users_watched = CONCAT(users_watched, '?') WHERE users_watched NOT LIKE ? AND title_text = ?");
mysqli_stmt_bind_param($statement, "sss", $user_id, $like_input, $watched_title);
mysqli_stmt_execute($statement);
结果:没有将值添加到合适的字符串的末尾。
期望输出根据videos_watched
<?php
$user_id = $_POST["user_id"];
$watched_title = $_POST["watched_title"];
$temp_user_id = $_POST["temp_user_id"];
$like_input = "%".$temp_user_id."%";
try {
$con = new PDO('mysql:host=$host;dbname=$dbname','$username', '$pass');
$con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $con->prepare("UPDATE videos SET users_watched = CONCAT(users_watched, :userid) WHERE users_watched NOT LIKE :like_input AND title_text = :watched_title");
$stmt->bindParam(':userid', $userid);
$stmt->bindParam(':like_input', $like_input);
$stmt->bindParam(':watched_title', $watched_title);
$stmt->execute();
}
catch(PDOException $e)
{
echo "Connection failed: " . $e->getMessage();
}
?>