php—您的sql语法有错误;检查与您的mariadb服务器版本对应的手册,以了解正确的语法”

gajydyqb  于 2021-06-20  发布在  Mysql
关注(0)|答案(2)|浏览(291)

通过prompt方法,我用这个人的名字来创建一个表,这个方法正在工作,这个名字正在被php脚本解析
错误:无法执行create table kat(item varchar(50),quantity integer,price real)。
sql语法有错误;检查与您的mariadb服务器版本相对应的手册,以获得在'kat(item varchar('在第1行)附近使用的正确语法

echo("<script type='text/javascript'> var answer = prompt('Enter name'); </script>");
$na= "<script type='text/javascript'> document.write(answer); </script>";
$sql = "CREATE TABLE $na (Item VARCHAR(50) , Quantity INTEGER, Price REAL)"; 
if(mysqli_query($conn, $sql)){
    echo "Table created successfully.";}
else {
    echo "ERROR: Could not able to execute $sql. " . mysqli_error($conn);
}
zzwlnbp8

zzwlnbp81#

将您的连接添加到 $con.

0vvn1miw

0vvn1miw2#

问题是您将以下内容作为表的名称发送(扩展 $na ): <script type='text/javascript'> document.write(answer); </script> 显示为 kat 在浏览器的错误消息中,但实际上是上面的javascript代码生成了无效的sql语句。 $na 应该设置为通过get或post发送到web服务器的内容,这将在 $_GET , $_POST ,或 $_REQUEST 变量,或 php://input 如果您在post请求的主体中发送它,例如作为json,则流。另一个问题,但仍然值得一提-确保清理用户输入以避免sql注入的可能性。
例如,有一个带有字段的post表单 answer 发送到服务器,然后 $na = mysqli_escape_string($_POST["answer"]); 然后 $sql = "create table$na(Item VARCHAR(50) , Quantity INTEGER, Price REAL)"; 剩下的代码。

相关问题