apóstrofo em mysql/php
-
24-09-2019 - |
Pergunta
Estou tentando aprender PHP/MySQL.
A inserção de dados no MySQL funciona bem, mas inserir aqueles com apóstrofo está gerando um erro. Tentei usar o mysql_real_escape_string, mas isso não funciona.
apreciaria qualquer ajuda.
<?php
include 'config.php';
echo "Connected <br />";
$auth = $_POST['author'];
$quo = $_POST['quote'];
$author = mysql_real_escape_string($auth);
$quote = mysql_real_escape_string($quo);
//**************************
//inserting data
$sql="INSERT INTO Quotes (vauthor, cquotes)
VALUES ($author, $quote)";
if (!mysql_query($sql,$conn))
{
die('Error: ' . mysql_error());
}
echo "1 record added";
...
O que estou fazendo errado?
Solução
Seus valores são strings, eles ainda precisam de delimitadores na declaração SQL, mesmo depois de você escapar.
//inserting data
$sql="INSERT INTO Quotes (vauthor, cquotes)
VALUES ('$author', '$quote')";
Outras dicas
As cordas devem ser embrulhadas em cotações no SQL:
$sql="INSERT INTO Quotes (vauthor, cquotes)
VALUES ('$author', '$quote')";
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow