php sql查询无法正常工作

时间:2012-06-03 15:28:01

标签: php mysql phpmyadmin

好的,我的插入查询无法在我的服务器上运行。这是我正在运行的代码:

<?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

我做错了什么?

3 个答案:

答案 0 :(得分:2)

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

$query = sprintf('INSERT INTO `nombre`(`card`) VALUES ("%s")',
                 mysql_real_escape_string($name));

答案 1 :(得分:1)

$query = 'INSERT INTO `nombre`(`card`) VALUES ("' . $name . '")';

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

另外请不要忽略EmilVikström关于mysql_real_escape_string或准备好的陈述(搜索mysqli)的评论。因为在我的例子中,如果名称包含双引号,它将破坏查询,因此必须转义字符串中的双引号!

答案 2 :(得分:0)

实际上是打印查询而不是从数据库中打印生成的行。您需要使用mysql_result()才能获取数据。