0

OK、サーバーで挿入クエリが機能していません。ここに私が実行しているコードがあります:

<?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 に答える