0

好的,我的插入查询在我的服务器上不起作用。这是我正在运行的代码:

<?php
$name = $_GET['name'];
$database_servidor = "localhost";
$database_usuario = "username";
$database_pass = "pass";
$database_nombre = "table";
$conexion = mysql_connect($database_servidor, $database_usuario, $database_pass);
mysql_select_db($database_nombre, $conexion);
$query = "INSERT INTO `nombre`(`card`) VALUES (`$name`)";
echo $query;
$sql = mysql_query($query) or die (mysql_error());
?>

结果如下:

http://santirivera92.co.cc/insert.php?name=Santiago%20Rivera

我究竟做错了什么?

4

3 回答 3

2

您在数据周围使用反引号而不是引号$name。这是我的做法(添加转义以防止 SQL 注入):

$query = sprintf('INSERT INTO `nombre`(`card`) VALUES ("%s")',
                 mysql_real_escape_string($name));
于 2012-06-03T15:32:58.800 回答
1
$query = 'INSERT INTO `nombre`(`card`) VALUES ("' . $name . '")';

您需要在查询中的字符串值周围加上双引号。

也不要忽略 Emil Vikström 关于mysql_real_escape_string或准备好的语句的评论(搜索 mysqli)。因为在我这里的示例中,如果名称中包含双引号,则会中断查询,因此必须对字符串中的双引号进行转义!

于 2012-06-03T15:31:03.087 回答
0

您实际上是在打印查询,而不是打印数据库中的结果行。您需要使用mysql_result()来获取数据。

于 2012-06-03T15:33:30.570 回答