【问题标题】:gettin mysql 1064 error while insert into插入时出现 mysql 1064 错误
【发布时间】:2015-10-09 20:44:36
【问题描述】:

就像我在标题中所说的那样,我遇到了那个烦人的错误,它不知从何而来,我无法从互联网上找到解决方案。

这是我的代码

$kayitsorgu = mysql_query("INSERT INTO `kresler`(`il_no`, `ilce_no`, `uye_adi`, 
                `kat_no`, `icerik`, `icerik2`, `premic1`, `thubnail`, `kres_ad`, `kres_adres`, 
                `kres_mail`, `tel1`, `fax`, `kres_drc`, `anao`, `oz1`, `oz2`, `oz3`, 
                `oz4`, `oz5`, `oz6`, `oz7`, `oz8`, `oz9`, `oz10`) 
                VALUES ($il_no,$ilce_no,$uye_adi,$kat_no,$icerik,$icerik2,$premic1,$thubnail,
                $kres_ad,$kres_adres,$kres_mail,$tel1,$fax,$kres_drc,$anao,$oz1,$oz2,
                $oz3,$oz4,$oz5,$oz6,$oz7,$oz8,$oz9,$oz10)"); 

请帮助我,我正在尝试解决这个问题,比如 2-3 天。

【问题讨论】:

  • 1064 表示您的 SQL 语句中有语法错误。由于您尚未发布实际的 SQL 查询(我们无法猜测您在所有这些 PHP 变量中可能有什么),因此无法回答您。我的猜测是其中一些变量包含破坏 SQL 查询的字符串。
  • 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在 '@444444444.com,555555555,555555555555,2,0,3 - 5,15:00 - 05:00,10 - 1000,4111,111 附近使用正确的语法' 在第 1 行,这是实际的错误页面

标签: mysql insert mysql-error-1064 insert-into


【解决方案1】:

查看查询可能也缺少正确引用数据。

开始使用mysqliprepared statements,防止出错,帮助调试:

$mysqli = new mysqli("localhost", "user", "password", "database");
$stmt=$mysqli->prepare("INSERT INTO `kresler`(`il_no`, `ilce_no`, `uye_adi`, 
            `kat_no`, `icerik`, `icerik2`, `premic1`, `thubnail`, `kres_ad`, `kres_adres`, 
            `kres_mail`, `tel1`, `fax`, `kres_drc`, `anao`, `oz1`, `oz2`, `oz3`, 
            `oz4`, `oz5`, `oz6`, `oz7`, `oz8`, `oz9`, `oz10`) 
            VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,
            ?,?,?,?,?,?,?,?)");
//You have 25 variables, I made them all strings here (so 25 x s)
$stmt->bind_param("sssssssssssssssssssssssss",
  $il_no,$ilce_no,$uye_adi,$kat_no,
  $icerik,$icerik2,$premic1,$thubnail,
  $kres_ad,$kres_adres,$kres_mail,
  $tel1,$fax,$kres_drc,$anao,$oz1,$oz2,
  $oz3,$oz4,$oz5,$oz6,$oz7,$oz8,$oz9,$oz10);
$stmt->execute();

【讨论】:

  • 我现在从您的代码中收到此错误 致命错误:在第 78 行的 /home/barontamtam/public_html/betak/admin/act.php 中的非对象上调用成员函数 bind_param()
  • 驯服者,这是您应该尽快使用您的代码的地方。这将需要一点重写。我会跳到pdo。无论如何,请远离 mysql_*,正如我在我的 cmets 结尾提到的那样
  • 抱歉,第 2 行有一个 $query 而不是 $stmt。无论如何:这将立即运行的机会肯定不是 100%:您有一个很长的插入语句,所以机会那里有一个错误:25 个变量:也看看数据库设计,很可能有一个更聪明的方法来设置这个表)。
【解决方案2】:

试一试:

$frag1="INSERT INTO kresler(il_no, ilce_no, uye_adi,kat_no, icerik, icerik2, premic1, thubnail, kres_ad,";
$frag2=" kres_adres, kres_mail, tel1, fax, kres_drc, anao, oz1, oz2, oz3, oz4, oz5, oz6, oz7, oz8, oz9, oz10)";
$frag3=" VALUES ('$il_no','$ilce_no','$uye_adi','$kat_no','$icerik','$icerik2','$premic1','$thubnail',";
$frag4="'$kres_ad','$kres_adres','$kres_mail','$tel1','$fax','$kres_drc','$anao','$oz1','$oz2',";
$frag5="'$oz3','$oz4','$oz5','$oz6','$oz7','$oz8','$oz9','$oz10')";

$exec_me=$frag1.$frag2.$frag3.$frag4.$frag5;

$kayitsorgu = mysql_query($exec_me);

运行时,$exec_me=

put here

错误信息:

放在这里

【讨论】:

  • 我试过了,但仍然得到这个你的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在 '@444444444.com,555555555,555555555555,2,0,3 - 5,15:00 - 05:00,10 - 1000,4111,111 附近使用正确的语法' 在第 1 行页面
  • 你能在我的伪答案末尾回显 $exec_me 并编辑和扑通一声
  • 这是来自 exec_me 的回声" INSERT INTO kresler(il_no, ilce_no, uye_adi,kat_no, icerik, icerik2, premic1, thubnail, kres_ad, kres_adres, kres_mail, tel1, 传真, kres_drc, anao, oz1, oz2, oz3, oz4, oz5, oz6, oz7, oz8, oz9, oz10) 值 (4,71,fffff,6,dfdfdffd,dffddffddf,aaaaaa,krthub/traf.png,dfdfff,55555555555555,55555555555@ 444444444.com,555555555,555555555555,2,0,3 - 5,15:00 - 05:00,10 - 1000,4111,1111,1,1,1,1,1)"
  • 对不起,我有一个高级的时刻。重新加载我的答案。我忘记了单引号,现在查看它
  • 好的,标记答案并向上向下,检查标记,然后转到 mysqli。祝你好运
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-10-25
  • 2011-08-17
  • 1970-01-01
  • 2013-11-13
  • 2018-01-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多