某些代码从选择数据开始,然后检查行号是否为0,然后继续正常过程。问题是正常的过程取决于select
语句,因为它存储在insert
之前,所以不存在。如何在不使用ajax或与html相关的任何内容的情况下刷新PHP中的数据请求?下面是一个例子来解释:PHP mysql刷新选择数据
$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
声明
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);
[..]
我希望有一个简单的方法来做到这一点
您可以创建一个函数'GetData()'并在其中移动'select'并调用该函数。你需要运行'select'查询来在'insert'之后获取数据。 – 2012-07-10 15:39:17
@rs。是的,我知道,但我正在寻找最简单的方法来做到这一点 – Osa 2012-07-10 15:40:07
示例代码容易受到[SQL注入](http://unixwiz.net/techtips/sql-injection.html),这是一个非常严重[安全风险](http://bobby-tables.com/)。为了解决这个问题,从过时的mysql扩展名切换到[PDO](http://php.net/PDO)并使用[prepared statements](http://www.php.net/PDO.prepared-statements),将值作为参数传递给语句,而不是直接将它们插入到字符串中。如果您需要PDO教程,请尝试[“用PHP和PDO编写MySQL脚本”](http://www.kitebird.com/articles/php-pdo.html)。您保存的网站可能只是您自己的网站。 – outis 2012-07-10 15:46:23