gpt4 book ai didi

php - SQL INSERT 语句在不应该执行的时候执行

转载 作者:太空宇宙 更新时间:2023-11-03 10:48:12 24 4
gpt4 key购买 nike

所以我的 android 应用程序将 JSON 数据发送到服务器,PHP 脚本接收它,首先检查是否存在该用户的现有记录,如果不存在,则将它们添加到数据库中。由于某种原因,它不起作用。始终执行 INSERT 语句。当我在不同的 PHP 页面上检查计数时,我得到了正确的计数(使用相同的确切查询)。

但是这里发生了一些事情。总是添加新行,我不知道为什么。感谢您的帮助。

<?php

require_once('connection.php');

$data = json_decode($_SERVER['HTTP_JSON'], true);

$name = $data['name'];
$profilePicture = $data['profilePicture'];
$googleId = $data['googleId'];

//First see if the user is already in the database
//$find_existing_query = "SELECT * FROM users WHERE googleId = '".$googleId."'";
$find_existing_query = "SELECT COUNT(*) FROM users WHERE name = $name";
$find_query_result = mysql_query($find_existing_query);
$find_query_rows = mysql_fetch_assoc($find_query_result);
$count = $find_query_rows['COUNT(*)'];

//Add user if there are no rows returned
if($count == 0)
{
$add_user_query = "INSERT INTO users (name, profilePicture, googleId) VALUES ('".$name."', '".$profilePicture."', '".$googleId."')";
mysql_query($add_user_query);
}

$qry = "SELECT * FROM users";

$result = mysql_query($qry);
$rows = array();
while($r = mysql_fetch_assoc($result)){
$rows[] = $r;
}
echo json_encode($rows);

mysql_close();

?>

最佳答案

您的查询由于语法错误而失败,这使得 mysql_fetch_assoc() 返回 false,当类型 juggled 等于零时。

您忘记在查询中的字符串值两边加上引号。

$find_existing_query = "SELECT COUNT(*) FROM users WHERE name = $name";

应该是

$find_existing_query = "SELECT COUNT(*) FROM users WHERE name = '$name'";

关于php - SQL INSERT 语句在不应该执行的时候执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28289338/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com