以糟糕的方式编写mysql查询

时间:2013-11-03 03:56:20

标签: php mysql sql oop pdo

请查看我的PHP代码:

PHP:

$username = 'kia';
$pswd = 'kiakia';
$db = 'jahaad';

$kaan = new PDO('mysql:host=localhost; dbname = jahaad', $username, $pswd);

if ($kaan) { echo 'Connected<br />'; }

else { echo 'Not Connected'; }

$address = "../letters/Assistance01/office01/letter001.txt";

$open = fopen($address, 'r');

$size = filesize($address);

$file = fread($open, ($size*4));

fclose($open);

$filename = basename($address);

echo '<hr />' . $filename;

$type = strstr($filename, '.');

echo '<br /> ' . $type;

$recieveTime = date('Y/m/d H:m:s');

echo '<br />' . $recieveTime;

$from = 'test';

$sql = 'INSERT (`filename`, `filetype`, `recieve`, `from`, `file`) INTO `jahaad`.`assis01_office01` VALUES(:filename, :filetype, :recieve, :from, :file)';

$result = $kaan->prepare($sql);

$result->execute(array(':filename'=>$filename, ':filetype'=>$type, ':recieve'=>$recieveTime, ':from'=>$from, ':file'=>$file));
if ($result) {
    echo '<br />OK';
}
else {
    echo '<br />Problem';   
}

除了文件列,我的数据库中的每个列类型都是VARCHAR。 当我运行代码时,$result是真的!但我的数据库中没有添加任何内容...... 你能告诉我什么是错的吗?
修改
这是因为我在编写查询时不小心...
希望你不要这样做......

1 个答案:

答案 0 :(得分:1)

这不是PHP代码的问题,而是MySQL查询的问题。

这一行

$sql = 'INSERT (`filename`, `filetype`, `recieve`, `from`, `file`) INTO `jahaad`.`assis01_office01` VALUES(:filename, :filetype, :recieve, :from, :file)';

应该是

$sql = 'INSERT  INTO `jahaad`.`assis01_office01` (`filename`, `filetype`, `recieve`, `from`, `file`) VALUES(:filename, :filetype, :recieve, :from, :file)';