首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL表格插入

问MySQL表格插入
EN

Stack Overflow用户
提问于 2010-12-09 12:04:35
回答 2查看 68关注 0票数 1

我想知道我写的表是否正确,它似乎失败了。

代码语言:javascript
复制
while($n != 1)
  {
   $randstring = "live_".RandomString();
   echo "<br>".$username."<br>";
   echo $randstring."<br>";
   $idcheck = mysql_query("SELECT * FROM streamer_ids WHERE streamer_id='".$randstring."'"); //check for matching random strings
   if (!(mysql_num_rows($idcheck)>0))
   {
    $n=1; //It has found a random string that does not match.
   }
  }
//if it has reached this far, it has a unique id. Now that id is being written to the database.
  $temp = mysql_query("INSERT INTO streamer_ids (username,streamer_id,premium) VALUES(".$username.",".$randstring.","0")");
  $temp->closeCursor();

请注意,最后一部分是严重屠宰,这是我需要帮助。

EN

回答 2

Stack Overflow用户

发布于 2010-12-09 12:08:37

您的insert语句中似乎缺少字符串分隔符。

也就是说。

$temp = mysql_query("INSERT INTO streamer_ids (username,streamer_id,premium) VALUES('".$username."','".$randstring."','0')");

此外,我不知道SQL值从何而来,但您可能应该对其进行清理,以防止$username注入。也就是说,在上面运行addslashes。

  • Christian
票数 1
EN

Stack Overflow用户

发布于 2010-12-09 12:30:40

您可以将您的插入逻辑放入if row_count >0子句中,但您也会收到错误,因为您使用字符串连接而不是参数生成查询。使用参数,它将work=)您当前的代码是非常危险的。

此外,您的select *语句可以替换为select count(*),这将使您的逻辑更加清晰,因为您将只从db请求所需的数据,在本例中,无论是否有行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4394723

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档