我遇到mySQL问题我收到此错误
Notice: Undefined property: PDO::$error in C:\MAMP\htdocs\paresFiles.php on line 33
Error: INSERT INTO `searchtable`(`word`, `array`, `count`) VALUES ( pinocchio , 1 ,-1)
Notice: Undefined property: PDO::$error in C:\MAMP\htdocs\paresFiles.php on line 33
Error: INSERT INTO `searchtable`(`word`, `array`, `count`) VALUES ( alice's adventures in wonderland , 2 ,-1)
Notice: Undefined property: PDO::$error in C:\MAMP\htdocs\paresFiles.php on line 33
Error: INSERT INTO `searchtable`(`word`, `array`, `count`) VALUES ( peter pan , 3 ,-1)
Notice: Undefined property: PDO::$error in C:\MAMP\htdocs\paresFiles.php on line 33
Error: INSERT INTO `searchtable`(`word`, `array`, `count`) VALUES ( snow white , 4 ,-1)
我想在mysql 3值中插入我的搜索表,当我插入它时,我收到此错误并且没有在我的表中获取任何数据。 我需要做些什么来解决这个错误?
这是我的代码(插入数据):
include_once 'connect.php';
$dir = "storage";
$title;
$auther;
$fileNum;
// Open a directory, and read its contents
foreach (glob($dir."/*.txt") as $filename) {
$handle = fopen($filename, "r");
if ($handle) {
while (($line = fgets($handle)) !== false) {
if(substr( $line, 0, 3 ) === "#id")
{
$fileNum=substr( $line, 5, 3 );
}
if(substr( $line, 0, 6 ) === "#title")
{
$title=substr( $line, 8, 100 );
}
if(substr( $line, 0, 5 ) === "#name")
{
$auther=substr( $line, 8, 12 );
}
}
$titleVal=-1;
$sql = "INSERT INTO `searchtable`(`word`, `array`, `count`) VALUES ($title,$fileNum,$titleVal)";
if ($db->query($sql) === TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $db->error;
}
fclose($handle);
}
连接到mysql:
<?php
$db = new PDO('mysql:host=localhost;dbname=search;charset=utf8mb4', 'root', 'root');
if (!$db) {
die('Could not connect:' . mysql_error());
}
echo 'Connected successfully';
?>
答案 0 :(得分:2)
你应该使用准备陈述。
像这样的东西
$sql = "INSERT INTO searchtable (word, array, count) VALUES (:word , :array, :count)";
$statement = $db->prepare($sql);
$statement->exec(array(
'word' => $title,
'array' => $fileNum,
'count' => $titleVal
));