首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取url参数并插入到数据库中

获取url参数并插入到数据库中
EN

Stack Overflow用户
提问于 2014-04-03 21:13:10
回答 3查看 5.8K关注 0票数 1

尝试通过在url中键入值来插入到数据库中,但在插入到数据库中遇到困难:

以下是URL:

代码语言:javascript
复制
http://student.cs.hioa.no/~s180343/updatedb.php?verdi=22

代码如下:

代码语言:javascript
复制
<?php

$dbhost = "MYSQL-SERVER";
$dbuser = "USERNAME";
$dbpass = "";
$verdi = $_GET['verdi'];

$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
  die('Could not connect: ' . mysql_error());
}
$sql = "INSERT INTO test ('id') VALUES (`$verdi`)";

mysql_select_db('s180350');
$retval = mysql_query( $sql, $conn );
if(! $retval )
{
  die('Could not enter data: ' . mysql_error());
}
echo "Entered data successfully\n";
mysql_close($conn);
?>
EN

回答 3

Stack Overflow用户

发布于 2014-04-03 21:14:26

在字符串值两边使用引号。在列名两边打勾。你把它倒过来了:

代码语言:javascript
复制
$sql = "INSERT INTO test ('id') VALUES (`$verdi`)";

应该是

代码语言:javascript
复制
$sql = "INSERT INTO test (`id`) VALUES ('$verdi')";

仅供参考,你对SQL injections很开放

票数 4
EN

Stack Overflow用户

发布于 2014-04-03 21:14:01

您正在进行相反的操作,即为列名添加'',为值添加

代码语言:javascript
复制
$sql = "INSERT INTO test ('id') VALUES (`$verdi`)";

应该是

代码语言:javascript
复制
$sql = "INSERT INTO test (`id`) VALUES ('$verdi')";

开始使用prepare语句,或至少在定义conn之后使用以下语句。

代码语言:javascript
复制
$verdi = mysql_real_escape_string($verdi);
票数 1
EN

Stack Overflow用户

发布于 2014-04-03 21:20:31

请不要忘记保护sql查询中的所有用户输入。请参阅SQL injection wiki

你的代码的问题是在引号上使用错误。请参见编辑后的代码:

代码语言:javascript
复制
$conn = mysql_connect("MYSQL-SERVER", "USERNAME", $dbpass);
if(! $conn )
{
  die('Could not connect: ' . mysql_error());
}
mysql_select_db('s180350');

$retval = mysql_query( "INSERT INTO test ('id') VALUES ('".mysql_real_escape_string($_GET['verdi'])"')", $conn );

if(! $retval )
{
  die('Could not enter data: ' . mysql_error());
}

echo "Entered data successfully\n";

注:不要通过设置不需要的变量来耗尽资源。

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

https://stackoverflow.com/questions/22838856

复制
相关文章

相似问题

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