好的,我的插入查询无法在我的服务器上运行。这是我正在运行的代码:
<?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
我做错了什么?
答案 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()才能获取数据。