私は長い間このエラーを解決しようとしています。おそらく私は盲目ですが、何が問題なのかわかりません。
$query = "INSERT INTO `130225` (`vote`,`ip`) VALUES (".$_POST['130225'].",".$_SERVER['REMOTE_ADDR'].");";
IP
一重引用符で囲まれていなかった (文字列の場合)、
$query = "INSERT INTO `130225` (`vote`,`ip`) VALUES (".$_POST['130225'].",'".$_SERVER['REMOTE_ADDR']."');";
// ^ ^
補足として、変数のSQL Injection
値が外部から取得された場合、クエリは脆弱です。予防方法については、以下の記事をご覧ください。を使用すると、値を一重引用符で囲む必要がなくなります。PreparedStatements
値がある場所に「'」がいくつか欠けているようです。
$query = "INSERT INTO `130225` (`vote`,`ip`) VALUES ('".$_POST['130225']."','".$_SERVER['REMOTE_ADDR']."');";
クエリをデータベースに貼り付けると、クエリのトラブルシューティングが容易になります。役立つ (場合によっては..) エラー メッセージが表示されます。
あなたのクエリから得られるエラーは
#1054 - Unknown column 'text here' in 'field list'
このエラーを Google で検索すると、解決方法のヒントが表示されます。
同様の問題を回避するには、準備済みステートメントを使用することをお勧めします。このように、引用符について心配する必要はありません。
$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'world');
クエリは次のようになります。
$stmt = $mysqli->prepare("INSERT INTO 130225 (vote,ip) VALUES (?,?));
次に、パラメーターをバインドします。
$stmt->bind_param('ss', $_POST['130225'],$_SERVER['REMOTE_ADDR']);
等...