适当的mySQL命令用于添加URL

时间:2014-11-12 17:11:26

标签: php mysql

我在尝试将网址添加到mySQL数据库时遇到问题。

字符串是一个URL:

http://pbs.twimg.com/profile_images/1708867059/405000_10150426314376065_707061064_8645107_703731598_n_normal.jpg

我得到的错误是:

Error description: 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 '://pbs.twimg.com/profile_images/1708867059/405000_10150426314376065_707061064_86' at line 1

似乎它不允许我添加网址,我认为某些字符有问题,但我不知道是什么?

我的SQL是:

INSERT INTO accounts (name,consumerkey,consumersecret,pic_url) VALUES ($twitterID,$consumerkey,$consumersecret,$picture_url)"

2 个答案:

答案 0 :(得分:0)

通过在定制的sql字符串中添加几个字符(如'"),您无法真正解决这类问题!

相反,要了解在php中编写sql的真正方法(这就像一个非常严格保密的秘密),即使用PDO statements。这将允许您使用像(:twitterID, :consumerKey, :consumerSecret, :pictureUrl)这样的播放器,它将接受复杂的变量,例如网址和任何垃圾邮件用户更优雅地发送。

从长远来看,这将为您节省很多麻烦和时间。

答案 1 :(得分:0)

你需要引用字符串值和SQL会抱怨的任何其他字符,在这种情况下它是冒号;见下文。

($twitterID,$consumerkey,$consumersecret,'$picture_url')

('".$twitterID."','".$consumerkey."','".$consumersecret."','".$picture_url."')

如果您想引用所有值。

旁注:您可以删除整数变量周围的引号。

I.e。:

这基于并且没有看到代码的其余部分如何:

$picture_url = "http://pbs.twimg.com/profile_images/1708867059/405000_10150426314376065_707061064_8645107_703731598_n_normal.jpg";
  • 错误表明它接近: - 就在那附近,结肠。
...right syntax to use near '://pbs.twimg.com
                             ^ right there

您也可以使用:

VALUES ($twitterID, $consumerkey, $consumersecret, '" .$dbcon->real_escape_string($picture_url) . "')";

$dbcon是数据库连接变量的示例,基于mysqli_语法。

您尚未说明您使用的是哪种MySQL API。