gpt4 book ai didi

PHP mysql刷新选择数据

转载 作者:行者123 更新时间:2023-11-29 14:23:18 25 4
gpt4 key购买 nike

某些代码从选择数据开始,然后检查要插入的行号是否为 0,然后继续正常过程。问题是正常的过程依赖于不存在的select语句,因为它存储在insert之前。如何在没有ajax或任何与html相关的内容的情况下刷新PHP内部的数据请求?下面举个例子来解释一下:

$user = $_GET['user']; // not stored user
$select = mysql_query("SELECT * FROM `table` WHERE username = ".$user);
$row = mysql_fetch_array($select);
$rownum = mysql_num_rows($select);
if(!$rownum){
mysql_query("INSERT INTO table (username, something) VALUES ('$user', 1)");
}

/* Here comes the problem */
if($row['something'] == 0){
die("Not found !"); // THIS if returns true since it was not found at first place before inserting
// i want it to refresh the $select data so it could be read as 1

}

到目前为止,我解决这个问题的方法是重复使用 insert 语句下面的 $select$row 代码

if(!$rownum){
mysql_query("INSERT INTO table (username, something) VALUES ('$user', 1)");
}
$select = mysql_query("SELECT * FROM `table` WHERE username = ".$user);
$row = mysql_fetch_array($select);
[..]

我想要一个更简单的方法来做到这一点

最佳答案

如果您知道新创建的记录中有什么内容,则可以创建一个新数组 $row=array('username'->'bob', ...);

但是,如果表中有默认值,或者稍后添加其他内容,则必须进行第二次选择。

$user=urldecode($_GET['user']);
$result=mysql_query("SELECT * FROM `table` WHERE username='".mysql_real_escape_string($user)."'");
if(!$result) die("SQL ERROR");

if(mysql_num_rows($result)>0)
{
$row = mysql_fetch_array($select);
}
else
{
mysql_query("INSERT INTO table (username, something) VALUES ('".mysql_real_escape_string($user)."', 1)");

$result=mysql_query("SELECT * FROM `table` WHERE username='".mysql_real_escape_string($user)."'");
if(!$result) die("SQL ERROR");
if(mysql_num_rows($result)==0) die("MAJOR ERRORS IN SQL");

$row = mysql_fetch_array($result);
}

我更喜欢使用 $result,因为这是您运行查询的结果。

关于PHP mysql刷新选择数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11416835/

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