0

似乎无法让它发挥作用。有人可以通过一个例子指出我正确的方向如何解决这个问题。谢谢你。我需要这个网址 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"; }

?>
4

3 回答 3

1

尝试添加

 mysql_query($sql);

所以它实际上会在您创建一个字符串时添加到数据库中

于 2012-07-25T18:14:14.723 回答
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

于 2012-07-25T18:13:51.423 回答
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();}
于 2012-07-25T18:17:43.157 回答