gpt4 book ai didi

php - SQLSTATE[42000] : Syntax error while syntax is OK

转载 作者:行者123 更新时间:2023-11-29 11:54:09 27 4
gpt4 key购买 nike

我对我的简单插入所产生的错误感到非常困惑。我已经通过不同的检查器多次检查了语法并搜索了类似的问题,但没有找到解决方案。

错误看起来像这样:

'SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' , , , , , , , , , , , , , , )' at line 1' in 

我的代码基本上是这样的:

$yhteys = new PDO('mysql:host=localhost;dbname=XXXX', 'YYYY', 'ZZZZ');
$kysely = $yhteys->prepare("INSERT INTO hakija (Kutsumanimi, Etunimet, Sukunimi, SyntymAika, Syntymapaikka, Sahkoposti, Puhelinnumero, Postiosoite, Postinumero, Postitoimipaikka, Maa, Suosittelija, IPos, Lahetysaika, Vapaa_sana, Sosme) VALUES ($nimi, $etunimet, $sukunimi, $saika, $spaikka, $email, $puhelin, $osoite, $postinro, $postitmp, $maa, $suosittelija, $IPos, $lahetysaika, $vapaasana, $sosme)");
$kysely->execute();

如果我直接通过 phpMyAdmin 使用此 INSERT,它可以工作,但是从 php..任何人都可以帮助我吗?

PHP: native (5.4)MySQL 5.6

最佳答案

您应该使用准备好的语句。它将防止 sql 注入(inject),并且您不必处理变量类型

$yhteys = $dbh->prepare("INSERT INTO hakija (Kutsumanimi, Etunimet,...) VALUES (:kutsumanimi, :ktunimet, ...)");
$yhteys ->bindParam(':kutsumanimi', $kutsumanimi);
$yhteys ->bindParam(':ktunimet', $ktunimet);
...
$yhteys ->execute();

看看这里:http://php.net/manual/en/pdo.prepared-statements.php

关于php - SQLSTATE[42000] : Syntax error while syntax is OK,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33493002/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com