使用URL String插入MySQL

时间:2012-07-25 18:10:32

标签: php mysql http

似乎无法让这个工作。可以请一些人指出我正确的方向,举例说明如何实现这个目标。谢谢。 我需要这个网址 domain.com/script.php?from=1123&message=1234454

将velues插入我的表格

<?php

mysql_connect('localhost', 'user', 'pass');

mysql_select_db('dbname');

$sql = "insert into table (from, message) values ('".$_GET['from']."','".$_GET['message']."')"; 
if(!$sql){ 
echo "Error " . mysql_error(); }
else{ echo "Success"; }

?>

3 个答案:

答案 0 :(得分:1)

尝试添加

 mysql_query($sql);

因此,在您创建字符串

时,它实际上会添加到数据库中

答案 1 :(得分:0)

您永远不会调用mysql_query()来实际执行查询。

<?php

mysql_connect('localhost', 'user', 'pass');

mysql_select_db('dbname');

$from    = mysql_real_escape_string($_GET['from']);
$message = mysql_real_escape_string($_GET['message']);

// TODO: check that $from and $message are not empty and are valid

$sql    = "insert into table (from, message) values ('$from','$message')"; 
$result = mysql_query($sql);  // This actually executes the query on the server

if(!$result) { 
    echo "Error " . mysql_error();
} else {
    echo "Success";
}

mysql_real_escape_string的调用也非常重要。没有它,你很容易受到SQL注入。

此外,不推荐使用mysql_*函数。您应该切换到MysqliPDO_Mysql

答案 2 :(得分:0)

首先,您必须检查变量是否已设置。

    if(isset($_GET['from'],$_GET['message'])){
       $con = mysql_connect('localhost', 'user', 'pass');

       mysql_select_db('dbname',$con);

       $from    = mysql_real_escape_string($_GET['from']);
       $message = mysql_real_escape_string($_GET['message']);

// TODO: check that $from and $message are not empty and are valid

$sql    = "insert into table (from, message) values ('$from','$message')"; 
$result = mysql_query($sql);

if(!$result) {  echo "Error " . mysql_error(); } 
else {  
  echo "Success"; 
  mysql_close($con);
}

}else{die();}